[ISSUE #10987] Preserve offsets during correction query - #11020
Open
zjncs wants to merge 1 commit into
Open
Conversation
Signed-off-by: zjncs <18910855655@163.com>
zjncs
force-pushed
the
fix/query-correction-offset-preserve-groups
branch
from
September 5, 2026 07:00
6b62319 to
ceec0f3
Compare
zjncs
marked this pull request as ready for review
September 5, 2026 09:29
RockteMQ-AI
approved these changes
Sep 5, 2026
RockteMQ-AI
left a comment
Contributor
There was a problem hiding this comment.
Summary
This PR fixes two related issues in the offset correction query path:
-
ConcurrentModificationException prevention: Wraps
offsetTable.keySet()innew HashSet<>(...)to create a defensive copy before iterating. This prevents CME when entries are removed during iteration. -
Incorrect offset deletion: Removes the
removeConsumerOffset(topicAtGroup)call inside the correction loop, which was deleting offsets that should be preserved.
Both fixes are correct and address real bugs in the offset management logic.
LGTM.
Automated review by github-manager-bot
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Which Issue(s) This PR Fixes
Fixes #10987
Brief Description
ConsumerOffsetManager.queryMinOffsetInAllGroupiterated the liveoffsetTable.keySet()view and removed matching groups while answering a correction-offset query. The iterator removal andremoveConsumerOffsetcall permanently deleted consumer offsets as a read-side effect.Copy the key set before filtering and remove matching keys only from that temporary set. The live offset table is now left unchanged while the query excludes the requested groups from its calculation.
How Did You Test This Change?
$(git rev-parse develop).offsetTable.keySet()directly and calledremoveConsumerOffsetduring the query.git diff --checkpassed.Risk
Low; this removes an unintended destructive side effect from a read/query operation while preserving filtering behavior.
AI-assisted contribution; implementation and verification performed against current
develop.