[Bug] [ARM] Partially acknowledged batches are not redelivered
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- cpp
調査の方向性
まず Message::getMessageId を使用する Consumer::receive ループと非同期の Consumer::acknowledge パスから始め、説明されている ARM 構成で 309 イベントのバッチ中断を再現します。バッチの一部だけを acknowledge して再起動した後、受信されていない残りを含むバッチ内のすべてのイベントが再配信されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Search before asking
- I searched in the issues and found nothing similar.
Version
Debian GNU/Linux 10 (buster), aarch64 (but the executable is arm32), pulsar-client-cpp 3.3.0
Minimal reproduce step
- Send a batch of events to the Pulsar broker (in our reproduction, it is a batch size of 309).
- Receive these messages (we're using
pulsar::Consumer::receivein a loop), while continuously acknowledging them asynchronously (acknowledgements are done usingpulsar::Consumer::acknowledge(const MessageId &messageId), wheremessageIdispulsar::Message::getMessageId). - Terminate the program during the middle of receiving a batch (we're terminating after having received and acknowledged the 190/309 events from a batch).
- Resume the program.
What did you expect to see?
All of the events in the batch re-sent.
What did you see instead?
None of the events in the batch, including the ones never received are re-sent.
Anything else?
- We log the result of the acknowledgement in the callback method, which shows us that the most we've acknowledged is the
190thmessage in a batch. - Exclusive subscription.
- Running it on Gravitron2/3 processors.
- We've used the same broker and test with an x86_64 Pulsar 3.3.0 Pulsar client, and we've had no issues (RHEL8).
- We can actively see missing messages - we are just sending consecutive numbers and logging them. We're missing exactly 119, the amount remaining in the batch that we've not fully acknowledged.
- We've tried not immediately terminating - i.e. we stop receiving messages but continue to process any callbacks, to validate that we're just not seeing 119 callbacks missing, and nothing.
Are you willing to submit a PR?
- I'm willing to submit a PR!
- 主要言語
- C++
- スター
- 72
- フォーク
- 93
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/pulsar-client-cpp のほかの issue
-
難易度 3/5 半日 初心者へのやさしさ 62/100
apache/pulsar-client-cpp#623 ·
-
[Bug] MessageTest fails to build with GCC 15.3.0 and 16.2.1 (-Werror=stringop-truncation)対応中かも @davlgd が 3 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 25/100
apache/pulsar-client-cpp#621 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
apache/pulsar-client-cpp#620 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
apache/pulsar-client-cpp#619 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 20/100
apache/pulsar-client-cpp#618 ·
apache/pulsar-client-cpp の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
meshcore-dev/MeshCore#3760 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
deepseek-ai/DeepGEMM-Ascend#29 ·
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
EchoTools/nevr-runtime#2042 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
emscripten-core/emscripten#28160 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Download size and speed show scientific notation between 1000 and 1023 units対応中かも @RaphaelFakhri が今日担当しました。 オープン
難易度 2/5 1時間未満 初心者へのやさしさ 88/100
kiwix/kiwix-desktop#1570 ·
メンテナーはふだん 1 日以内に返信