HTTP client treats a consumer group as a plain consumer

Aperta Adatta ai principianti
#4,408 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@mohitduhan19 ci sta già lavorando.

Dal 15/10/2026.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
75/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
api, backend

Direzione di ricerca

Inizia da core/sdk/src/http/consumer_offsets.rs e leggi refuse_external_group da #4392, che l’issue indica come precedente. Segui i percorsi del client HTTP per store_consumer_offset, get_consumer_offset, delete_consumer_offset e poll_messages; il lavoro è completato quando ciascuno rifiuta i tipi diversi da ConsumerKind::Consumer con FeatureUnavailable, invece di trattare silenziosamente un gruppo come un normale consumer.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug rust server
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
  1. Build an IggyClient with the HTTP transport.
  2. Send 10 messages to partition 0 of a topic.
  3. Store offset 5 with Consumer::group(Identifier::numeric(1)?) on partition 0.
  4. Read the offset with Consumer::new(Identifier::numeric(1)?). It returns 5.
Lingua principale
Rust
Stelle
5.2k
Fork
502
Merge medio
3g 11h
PR unite (30g)
143

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/iggy

Tutte le issue di apache/iggy

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.