Sean Quah created KAFKA-19974:
---------------------------------
Summary: Partitions can be assigned to more than one member in the
same epoch
Key: KAFKA-19974
URL: https://issues.apache.org/jira/browse/KAFKA-19974
Project: Kafka
Issue Type: Bug
Components: group-coordinator
Reporter: Sean Quah
Assignee: Sean Quah
Fix For: 4.2.0
NB: This bug is not about partitions being assigned to more than one member
simultaneously.
The change for KAFKA-19431 introduced a case where two different members could
be assigned a partition in the same epoch (but not at the same time).
When transitioning from UNREVOKED_PARTITIONS to UNREVOKED_PARTITIONS, we bump
the member epoch. However, we cannot tell whether we had unrevoked partitions
due to an unsubscription or an assignment change. When the unrevoked partitions
are due to an unsubscription, we may bump to an epoch where other partitions
are supposed to be assigned to a different member.
Example:
A group contains two members, both stable at epoch 10. The target assignment is
at epoch 10.
# Member A unsubscribes from topic bar at epoch 10. It enters
UNREVOKED_PARTITIONS at epoch 10 { assigned partitions: [foo], pending
revocation: [bar] }
# A new target assignment for epoch 11 moves partition foo to member B.
# Member A heartbeats at epoch 10, yielding bar. We try to reconcile to the
target assignment and it enters UNREVOKED_PARTITIONS again, at epoch 11 {
assigned partitions: [], pending revocation: [foo] }
# Member A yields topic foo.
# Member B is assigned topic foo at epoch 11 \{ assigned partitions [foo] }
--
This message was sent by Atlassian Jira
(v8.20.10#820010)