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: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org