HTTP client treats a consumer group as a plain consumer
メンテナーはふだん 1 日以内に返信
@mohitduhan19 がすでに取り組んでいます。
2026年10月15日 から。
評価
調査の方向性
core/sdk/src/http/consumer_offsets.rsから始め、issueが先例として挙げている#4392のrefuse_external_groupを読みます。store_consumer_offset、get_consumer_offset、delete_consumer_offset、poll_messagesのHTTPクライアントの処理経路をたどります。それぞれがConsumerKind::Consumer以外の種類をFeatureUnavailableで拒否し、グループを通常のコンシューマーとして黙って扱わない状態になれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Bug description
The REST API cannot name a consumer kind. Consumer.kind is #[serde(skip)], and the server builds a plain consumer (Consumer::new) from an HTTP request. An HTTP client can pass Consumer::group(..) to store_consumer_offset, get_consumer_offset, delete_consumer_offset or poll_messages. The call then acts on the plain consumer with the group's id, and no error tells the caller. Join and leave already return FeatureUnavailable over HTTP, so a group cannot work there.
Expected: the HTTP client refuses every kind except ConsumerKind::Consumer with FeatureUnavailable, as #4392 does for ConsumerKind::ExternalGroup (refuse_external_group in core/sdk/src/http/consumer_offsets.rs). This changes behavior for an HTTP caller that passes a group today. Raised in the review of #4392.
Affected area / component
Rust SDK, Iggy server
Reproduction
- Build an
IggyClientwith the HTTP transport. - Send 10 messages to partition 0 of a topic.
- Store offset 5 with
Consumer::group(Identifier::numeric(1)?)on partition 0. - Read the offset with
Consumer::new(Identifier::numeric(1)?). It returns 5.
- 主要言語
- Rust
- スター
- 5.2k
- フォーク
- 516
- 平均マージ
- 2日 17時間
- マージ済み PR(30日)
- 155
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/iggy のほかの issue
-
Go examples: add a message envelope producer and consumer対応中かも @ThunderGod77 が 6 日前に担当しました。 オープンgo good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
apache/iggy#4694 · コメント 3 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Add the fail-fast connection option to the Rust and Python quick-starts対応中かも @QIW9 が 11 日前に担当しました。 オープンdocs good first issue
難易度 1/5 1〜3時間 初心者へのやさしさ 92/100
メンテナーはふだん 1 日以内に返信
-
ResourceNotFound from the binary protocol prints an empty key対応中かも @xalestar が 2 日前に担当しました。 オープンapi python rust
apache/iggy#4767 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Go SDK: validate personal access token name length before serialization対応中かも @p4rtridge が 3 日前に担当しました。 オープンbug go good first issue
メンテナーはふだん 1 日以内に返信
-
CI/CD connectors
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
RustCrypto/utils#1597 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
max-sixty/worktrunk#4727 · コメント 7 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信
-
follow-up
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
carrick-sh/carrick#1859 ·
メンテナーはふだん 1 日以内に返信