lianetm commented on code in PR #15511:
URL: https://github.com/apache/kafka/pull/15511#discussion_r1525386165
##########
clients/src/main/java/org/apache/kafka/clients/consumer/internals/MembershipManagerImpl.java:
##########
@@ -911,9 +911,13 @@ void maybeReconcile() {
SortedSet<TopicIdPartition> assignedTopicIdPartitions =
findResolvableAssignmentAndTriggerMetadataUpdate();
final LocalAssignmentImpl resolvedAssignment = new
LocalAssignmentImpl(currentTargetAssignment.localEpoch,
assignedTopicIdPartitions);
- if (resolvedAssignment.equals(currentAssignment)) {
- log.debug("Ignoring reconciliation attempt. Target assignment
ready to reconcile {} " +
- "is equal to the member current assignment.",
resolvedAssignment);
+ if (currentAssignment != LocalAssignmentImpl.NONE &&
+ resolvedAssignment.localEpoch <= currentAssignment.localEpoch + 1
&&
+
resolvedAssignment.partitions.equals(currentAssignment.partitions)) {
+ log.debug("Ignoring reconciliation attempt. The resolvable
fragment of the target assignment {} " +
Review Comment:
just to consider maybe simplifying the log and clarify the situation: isn't
the message here simply that we're ignoring the reconciliation because resolved
target is equals to the current assignment? I get the point about intermediate
assignments, but an intermediate one would have updated the current assignment
so it wouldn't be equals to the resolved target (or leave a reconciliation in
progress so it wouldn't even make it to this check)
--
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]