cmccabe commented on code in PR #12513:
URL: https://github.com/apache/kafka/pull/12513#discussion_r951937315
##########
metadata/src/main/java/org/apache/kafka/controller/FeatureControlManager.java:
##########
@@ -229,6 +243,12 @@ private ApiError updateMetadataVersion(
return invalidMetadataVersion(newVersionLevel, "Unknown
metadata.version.");
}
+ // We cannot set a version earlier than IBP_3_3_IV0, since that was
the first version that contained
+ // FeatureLevelRecord itself.
+ if (newVersion.isLessThan(minimumBootstrapVersion)) {
+ return invalidMetadataVersion(newVersionLevel, "Unable to set a
metadata.version less than " +
+ minimumBootstrapVersion);
+ }
Review Comment:
> Edit: considering 3.0-3.2 were pre-prod versions of KRaft, it's arguably
fine to make 3.3 a point of no return. If we decide to go this route we need to
include this in KIP-833.
I agree that it needs to be documented in the KIP. It's an awkward
situation: ideally we would have introduced the metadata.version stuff earlier
than we did. But we are offering people a path forward to production versions
of KRaft clusters (although not backward to pre-prod).
To put this in perspective, downgrading IBP is not even officially supported
in the ZK world. There are IBP bumps you just can't roll back from in the ZK
world without manual intervention. This is the same kind of thing (although
hopefully it's the last one for KRaft!)
--
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]