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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]