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