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

Reply via email to