lh0156 opened a new pull request, #23038:
URL: https://github.com/apache/kafka/pull/23038

   KAFKA-20295: Use current quorum voters for controller feature validation
   
   The controller feature validation path currently iterates every controller 
registration in the metadata image. With a dynamic quorum, a controller can be 
removed from the Raft voter set while its historical registration remains in 
the image. If that registration advertises an older metadata.version range, it 
can incorrectly prevent a valid metadata.version upgrade.
   
   This change exposes the current voter IDs from Raft and passes them through 
the cluster feature support describer. Feature validation now checks registered 
controller capabilities only for current quorum voters and requires each 
current voter to have a registration. Existing describers that do not provide 
dynamic voter IDs retain the static QuorumFeatures fallback.
   
   Testing:
   
   - `./gradlew :metadata:test --tests 
org.apache.kafka.controller.FeatureControlManagerTest --no-build-cache`
   - `./gradlew :raft:test --tests 
org.apache.kafka.raft.KafkaRaftClientReconfigTest --no-build-cache`
   - `./gradlew :metadata:test --no-build-cache`
   - `./gradlew :metadata:spotlessCheck :raft:spotlessCheck --no-build-cache`
   - `./gradlew :raft:kafkaPublicApiChecker :metadata:kafkaPublicApiChecker 
--no-build-cache`
   - `git diff --check`
   
   The regression tests cover both stale registrations from removed voters and 
missing registrations for current voters. Jira: 
https://issues.apache.org/jira/browse/KAFKA-20295
   


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