lianetm commented on code in PR #14357:
URL: https://github.com/apache/kafka/pull/14357#discussion_r1361424454


##########
clients/src/main/java/org/apache/kafka/clients/consumer/internals/MembershipManagerImpl.java:
##########
@@ -135,6 +146,7 @@ public void updateState(ConsumerGroupHeartbeatResponseData 
response) {
     public void transitionToFenced() {
         resetEpoch();
         transitionTo(MemberState.FENCED);
+        assignmentReconciler.startLost();

Review Comment:
   the sequence here is not right I would say. Transitioning to FENCED 
currently means that the next poll will send out a HB with epoch 0, which 
should only be done when the `onPartitionsLost` callback completes. Wondering 
if an intermediate state like RELEASING_ASSIGNMENT would do. Similar to 
RECONCILING, but different because we do need to continue HB while reconciling, 
but not while releasing, because when fenced the member is not part of the 
group anymore until it rejoins. Both, reconciling and releasing would complete 
when the callbacks complete, but reconciling would transition to stable, vs. 
releasing that would transition to fenced (triggering the re-join). Makes sense?



-- 
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