vamossagar12 commented on code in PR #14432:
URL: https://github.com/apache/kafka/pull/14432#discussion_r1363327084


##########
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupMetadataManager.java:
##########
@@ -747,6 +798,11 @@ private void throwIfMemberEpochIsInvalid(
         List<ConsumerGroupHeartbeatRequestData.TopicPartitions> 
ownedTopicPartitions
     ) {
         if (receivedMemberEpoch > member.memberEpoch()) {
+            // If a static member rejoins, it's previous epoch would be -2. In 
such a
+            // case, we don't need to fence the member.
+            if (member.memberEpoch() == LEAVE_GROUP_STATIC_MEMBER_EPOCH && 
receivedMemberEpoch == 0) {
+                return;
+            }

Review Comment:
   This is mainly needed for the static member rejoin case. Let's say a static 
member with instance id `id` departed. When it departs, we would write a member 
epoch value of -2 against it. Now, if a new static member joins with the same 
instance id `id` and a member epoch value of 0, then without this condition, 
the rejoin would always fail with `FencedMemberEpochException`. This condition 
was added to avoid the same. 



-- 
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: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to