hubcio opened a new pull request, #4034: URL: https://github.com/apache/iggy/pull/4034
Review #3913 found IggyConsumer breaking its documented contract. Under any strategy but next(), one continuation offset served all partitions, so a member owning several skipped the start of later ones and auto-commit marked the gap consumed. A partition pinned on a consumer_group() builder bypassed assignment and looped on fenced empty replies. A member without partitions re-synced on every poll, one without auto-join never polled, shutdown() flushed offsets under AutoCommit::Disabled, auto-commit-on-poll committed a batch before decrypting it, and reconnects kept the old session's membership. Since the transport picks the group poll's partition, MessageClient gains poll_messages_with_strategy_for, and consumer and bench keep a cursor per partition. A pinned partition on a group member is dropped with a warning, as in C#, because Python and PHP pass one positionally. A member without partitions gets NO_ASSIGNED_PARTITION, as in Go and Node, and parks for polling_retry_interval. The poll path owns join and rejoin, and a failed join is a poll error. init() rejects an encryptor with AutoCommitWhen::PollingMessages. The final flush honours AutoCommit::Disabled, queued commits collapse to the latest offset per partition, and the lifecycle task is aborted on shutdown() and Drop. Every transport clears session-scoped group state in reset_vsr_session and bind_vsr_session, keeping topic-scoped cursors. The unused commit_failed_messages() setter is removed. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
