gabriellefu commented on code in PR #23088:
URL: https://github.com/apache/kafka/pull/23088#discussion_r3722974243


##########
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupMetadataManager.java:
##########
@@ -2227,10 +2245,13 @@ private CoordinatorResult<StreamsGroupHeartbeatResult, 
CoordinatorRecord> stream
             assignmentUpdate = AssignmentUpdate.RECOMPUTE;
         }
 
-        // Check if assignment configurations have changed
+        // Check if assignment configurations have changed. Both sides are 
compared without their default-valued
+        // configurations, so that a configuration that an older version wrote 
out explicitly at its default value
+        // does not read as a change.
         Map<String, String> currentAssignmentConfigs = 
streamsGroupAssignmentConfigs(groupId);
         Map<String, String> storedAssignmentConfigs = 
group.lastAssignmentConfigs();
-        if (assignmentUpdate == AssignmentUpdate.NONE && 
!currentAssignmentConfigs.equals(storedAssignmentConfigs)) {
+        if (assignmentUpdate == AssignmentUpdate.NONE
+                && 
!withoutDefaults(currentAssignmentConfigs).equals(withoutDefaults(storedAssignmentConfigs)))
 {

Review Comment:
   so if a config was not default first, then it's set back to default, it's 
not the same, it will trigger a epoch bump. If one config doesn't exist before, 
then the value is the default, it shouldn't trigger a epoch bump and the value 
of them withoutDefaults() will be the same



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

Reply via email to