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]