ahuang98 commented on code in PR #18240:
URL: https://github.com/apache/kafka/pull/18240#discussion_r1890660800


##########
raft/src/main/java/org/apache/kafka/raft/KafkaRaftClient.java:
##########
@@ -883,6 +923,13 @@ private boolean handleVoteResponse(
         VoteResponseData response = (VoteResponseData) responseMetadata.data();
         Errors topLevelError = Errors.forCode(response.errorCode());
         if (topLevelError != Errors.NONE) {
+            if (topLevelError == Errors.UNSUPPORTED_VERSION && 
quorum.isProspective()) {
+                logger.warn("Prospective received unsupported version error in 
vote response in epoch {}, " +
+                        "transitioning to Candidate state immediately since 
entire quorum does not support PreVote.",
+                    quorum.epoch());

Review Comment:
   > This is a valid state or condition.
   
   |I see your point here, there's nothing 'incorrect' about this happening. 
   > It should be rare because there are backoff/timeout logic in Candidate, 
Follower and Unattached which limit how quickly a replica transitions to 
Prospective.
   
   But I'm wondering about the case where a controller quorum is left partially 
upgraded on accident. Would having a warning log make this situation more 
discoverable?
   
   
   



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