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


##########
clients/src/main/java/org/apache/kafka/clients/consumer/internals/MembershipManagerImpl.java:
##########
@@ -248,4 +261,28 @@ public void 
updateAssignment(ConsumerGroupHeartbeatResponseData.Assignment assig
         }
         maybeTransitionToStable();
     }
+
+    @Override
+    public void completeReconcile(Set<TopicPartition> revokedPartitions,
+                                  Set<TopicPartition> assignedPartitions,
+                                  Optional<KafkaException> callbackError) {
+        if (callbackError.isPresent()) {
+            // TODO: how to react to callback errors?
+        }
+
+        assignmentReconciler.completeReconcile(revokedPartitions, 
assignedPartitions);
+        transitionTo(MemberState.STABLE);
+        // TODO: update state to signal the HeartbeatRequestManager to send an 
ACK heartbeat
+    }
+
+    @Override
+    public void completeLost(Set<TopicPartition> lostPartitions, 
Optional<KafkaException> callbackError) {
+        if (callbackError.isPresent()) {
+            // TODO: how to react to callback errors?
+        }
+
+        assignmentReconciler.completeLost(lostPartitions);
+        transitionTo(MemberState.UNJOINED);
+        // TODO: update state to signal the HeartbeatRequestManager to send an 
ACK heartbeat

Review Comment:
   uhm we do need to sort this out. One option I'm thinking about is I'm aiming 
at being able to have states that will easily indicate to the HB manager if it 
"shouldHeartbeatNow" (FENCED || RECONCILIATION_COMPLETED), making sure that we 
only transition to those when truly ready to HB (all callbacks completed). 
   Right now the HB manager has a "shouldSendHeartbeat" but that's conceptually 
indicating more of a `shouldSkipHeartbeat` (if FAILED or NOT_IN_GROUP) so we 
need to be mindful about identifying both situations in the HB manager poll. 
   Thoughts?



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