kevin-wu24 commented on code in PR #23152:
URL: https://github.com/apache/kafka/pull/23152#discussion_r3825583074


##########
metadata/src/main/java/org/apache/kafka/controller/QuorumFeatures.java:
##########
@@ -73,27 +76,27 @@ public static Map<String, VersionRange> 
defaultSupportedFeatureMap(boolean enabl
     public QuorumFeatures(
         int nodeId,
         Map<String, VersionRange> localSupportedFeatures,
-        List<Integer> quorumNodeIds
+        Supplier<Set<Integer>> votersSupplier

Review Comment:
   > Does the mean Feature update is broken without this PR in dynamic quorum?
   
   I'm not sure if I would use the word broken. This behavior has existed since 
dynamic quorum was released, so you can argue it is not a regression. 
`controller.quorum.voters`, whose ids ultimately populate `quorumNodeIds`, can 
be set on a dynamic quorum cluster, just not on a brand new cluster. For 
example, if you upgrade from kraft.version=0 to kraft.version=1, you can leave 
`controller.quorum.voters` as is, since it will be ignored. This check 
specifically blocks feature upgrades if not all of the active controller's 
`controller.quorum.voters` members have registered with the node. If that 
configuration is empty, then this check is a no-op.



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