kowshik edited a comment on pull request #9001: URL: https://github.com/apache/kafka/pull/9001#issuecomment-702023940
> Just looked through the change for firstActiveVersion, which makes sense. The only question I have is that if I'm doing a bold release by removing the deprecated code completely, such that previously I have version range [1, 6] and now the code only supports [4, 6] for a pair [min, max], would my deployment be successful automatically? @abbccdda Thanks for the review! I've addressed the comments from your most recent pass in a7f4860f5f8bb87cfb01452e208ff8f4e45bcd8b. To answer your question, the deployment will fail if the feature was finalized at say `[minVersionLevel=1, maxVersionLevel=6]` previously, but the new broker only supports version range: `[minVersion=4, maxVersion=6]`. This is where `firstActiveVersion` becomes useful. By bumping it up during a release (instead of the supported feature's `minVersion`), we are able to get past this situation. When `firstActiveVersion` is advanced in the code, and the cluster is deployed, the controller (and all brokers) know that the advancement acts a request to the controller to act upon the feature deprecation (by writing the advanced value to `FeatureZNode`). So, in this case we would release the broker with the supported feature version range: `[minVersion=1, firstActiveVersion=4, maxVersion=6]`. ---------------------------------------------------------------- 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