kevin-wu24 opened a new pull request, #23152: URL: https://github.com/apache/kafka/pull/23152
### What changed Follow up PR to https://github.com/apache/kafka/commit/c274a7348fb66d1bde99566bdb072fbb52b03dfd, which implements controller unregistration. This PR adds a check so that KRaft voter set members cannot be unregistered, which can prevent weird edge cases around races between unregistration requests and feature upgrades. Voters who are unregistered and then re-register with a cluster who completed an unsupported feature upgrade thanks to the unregistration would experience unavailability, which affects quorum health. The KRaft voter set is internal to the `/raft` module, so this PR adds the `RaftClientVotersSupplier` alongside some new public `RaftClient` API to expose the latest voter set, and the latest committed voter set. Both are necessary, because with `kraft.version=1` enabled, the controller being unregistered cannot be in either of these voter sets in order to be safely removed. ### Testing - Unit testing - Integration tests -- 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]
