apache / apache/pulsar-client-cpp

[Bug] getPartitionsForTopic Cause Signal 11 SIGSEGV (Segmentation Fault)

オープン
#454 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C++
スター
71
フォーク
90
平均マージ
2時間 33分
マージ済み PR(30日)
3

説明

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/pulsar-client-cpp/issues) and found nothing similar.

### Version

CPP Client: 3.6.0
pulsar broker: 3.0.4

### Minimal reproduce step

1、create pulsar client
2、invoke client getPartitionsForTopic to get partition

### What did you expect to see?

can get partition correctlly

### What did you see instead?

Signal ID:11 Pid:920
Time:1731978465
/opt/lib/libpulsar.so(_ZN6pulsar6Client26getPartitionsForTopicAsyncERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFvNS_6ResultERKSt6vectorIS6_SaIS6_EEEE+0x10)[0xffff17ac16d8]
/opt/lib/libpulsar.so(_ZN6pulsar6Client21getPartitionsForTopicERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSt6vectorIS6_SaIS6_EE+0xd8)[0xffff17ac5df0]

### Anything else?

This issue does not occur every time; it happens only with a certain probability.

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、C++ クライアント 3.6.0 とブローカー 3.0.4 で報告されている断続的なクラッシュを、Client::getPartitionsForTopic と getPartitionsForTopicAsync をエントリーポイントとして再現します。スタックトレースの位置で障害を調査し、異なるトピックに対する呼び出しを繰り返した場合を比較します。パーティション検索が SIGSEGV を発生させず、常に正しい結果を返すようになれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
api
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。