kowshik commented on a change in pull request #9001:
URL: https://github.com/apache/kafka/pull/9001#discussion_r496550557



##########
File path: 
clients/src/main/java/org/apache/kafka/common/feature/FinalizedVersionRange.java
##########
@@ -40,14 +40,16 @@ public static FinalizedVersionRange fromMap(Map<String, 
Short> versionRangeMap)
 
     /**
      * Checks if the [min, max] version level range of this object does *NOT* 
fall within the
-     * [min, max] version range of the provided SupportedVersionRange 
parameter.
+     * [min, first_active_version, max] range of the provided 
SupportedVersionRange parameter.

Review comment:
       We need to keep the existing validation. Here is a case where 
`minVersionLevel < firstActiveVersion` is true, but still there are no 
incompatibilities:
   ```
   SupportedVersionRange={minVersion=1, firstActiveVersion=4, maxVersion=7}
   FinalizedVersionRange={minVersionLevel=2, maxVersionLevel=6}
   ```
   
   For example, the above can happen during step 1 of feature verison level 
deprecation. Imagine a feature exists in ZK already and is finalized at 
`{minVersionLevel=2, maxVersionLevel=6}`. Then imagine a new Kafka release is 
deployed that raises `firstActiveVersion` for the supported feature from 1 -> 4 
(in order to deprecate versions: 1,2,3). In such a case, during Kafka server 
startup (where we check for feature incompatibilities), we would run into the 
comparison cited above between the new `SupportedVersionRange` and existing 
`FinalizedVersionRange`. But it is not considered to be a case of 
incompatibility.




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

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to