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]

Reply via email to