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

   ## Description
   
   `KafkaRaftClient.shouldSendUpdateVoteRequest` now checks the 
`canBecomeVoter` flag before sending an `UpdateRaftVoter` request. Previously, 
a node that is no longer a controller (for example, a node that was restarted 
as a broker-only node while still listed in the voter set) could still send an 
`UpdateRaftVoter` request and then fail to handle the response, which led to a 
fatal `IllegalStateException` in the Raft IO thread. This brings the behavior 
in line with `shouldSendAddOrRemoveVoterRequest`, which already gates on 
`canBecomeVoter`.
   
   ### Testing strategy
   
   Added a new test, 
`testFollowerDoesNotSendUpdateVoterWhenItCannotBecomeVoter`, that drives a 
follower whose `canBecomeVoter` is `false` and asserts that only a FETCH 
request is sent (not an `UpdateRaftVoter` request). Existing reconfiguration 
tests were updated to explicitly set `canBecomeVoter(true)` so their assertions 
about `UpdateRaftVoter` requests remain valid under the new check.
   
   Delete this text and replace it with a detailed description of your change. 
The 
   PR title and body will become the squashed commit message.
   
   If you would like to tag individuals, add some commentary, upload images, or
   include other supplemental information that should not be part of the 
eventual
   commit message, please use a separate comment.
   
   If applicable, please include a summary of the testing strategy (including 
   rationale) for the proposed change. Unit and/or integration tests are 
expected 
   for any behavior change and system tests should be considered for larger 
   changes.
   
   JIRA: https://issues.apache.org/jira/browse/KAFKA-19867


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