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]

Reply via email to