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]