mumrah commented on code in PR #12250:
URL: https://github.com/apache/kafka/pull/12250#discussion_r893522983
##########
core/src/main/scala/kafka/server/KafkaRaftServer.scala:
##########
@@ -180,12 +180,12 @@ object KafkaRaftServer {
"If you intend to create a new broker, you should remove all data in
your data directories (log.dirs).")
}
- // Load the bootstrap metadata file or, in the case of an upgrade from
KRaft preview, bootstrap the
+ // Load the bootstrap metadata file or, in the case of an upgrade from
older KRaft, bootstrap the
// metadata.version corresponding to a user-configured IBP.
val bootstrapMetadata = if
(config.originals.containsKey(KafkaConfig.InterBrokerProtocolVersionProp)) {
BootstrapMetadata.load(Paths.get(config.metadataLogDir),
config.interBrokerProtocolVersion)
Review Comment:
Ah, this should be reading the original config for IBP. I'll fix this.
The purpose of this is to allow a rolling upgrade from a previous KRaft
version where the IBP is explicitly set. If someone is running 3.2 with IBP of
3.2 (or 3.1, 3.0), we want to keep that same compatibility level during the
upgrade to 3.3+. We do this by bootstrapping the IBP supplied by the user.
If IBP is not explicitly set, users won't be able to do a rolling upgrade to
3.3 without side effects. We should probably guard against this to prevent
upgraded brokers from falling back to 3.0 while un-upgraded brokers may be on a
higher version.
--
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]