Skip to content

Conversation

@squah-confluent
Copy link
Contributor

During reconciliation, we transition members to UNRELEASED_PARTITIONS
when the target assignment contains a partition that is owned by another
member. Partitions are considered owned by another member if they are in
a member's assignment or partitions pending revocation. Ownership is
only updated after reconciliation has finished.

Fix a bug where we consider a partition owned by another member when it
is actually in the current member's list of partitions pending
revocation. In some cases, this skips a transition to
UNRELEASED_PARTITIONS and allows the current assignment to converge to
the target assignment one heartbeat sooner.

…tion by the current member

During reconciliation, we transition members to UNRELEASED_PARTITIONS
when the target assignment contains a partition that is owned by another
member. Partitions are considered owned by another member if they are in
a member's assignment or partitions pending revocation. Ownership is
only updated after reconciliation has finished.

Fix a bug where we consider a partition owned by another member when it
is actually in the current member's list of partitions pending
revocation. In some cases, this skips a transition to
UNRELEASED_PARTITIONS and allows the current assignment to converge to
the target assignment one heartbeat sooner.
@github-actions github-actions bot added triage PRs from the community group-coordinator small Small PRs labels Oct 27, 2025
assertEquals(
new ConsumerGroupMember.Builder("member")
.setState(MemberState.STABLE)
.setMemberEpoch(12)
Copy link
Member

@FrankYang0529 FrankYang0529 Oct 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m wondering if there’s any specific reason behind using 12 as the next member epoch? The previous member epoch is 10.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It just needs to be at least 2 more than the previous epoch to be realistic. Epoch 11's assignment would have moved the partition away from the member and epoch 12's assignment would have returned the partition. It doesn't actually impact the test.

Copy link
Member

@FrankYang0529 FrankYang0529 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@FrankYang0529 FrankYang0529 requested a review from dajac October 29, 2025 00:06
@github-actions github-actions bot removed the triage PRs from the community label Oct 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants