cmccabe commented on code in PR #13407: URL: https://github.com/apache/kafka/pull/13407#discussion_r1163303944
########## metadata/src/main/java/org/apache/kafka/controller/FeatureControlManager.java: ########## @@ -110,23 +143,31 @@ public FeatureControlManager build() { */ private final TimelineObject<MetadataVersion> metadataVersion; + private final TimelineObject<ZkMigrationControlState> migrationControlState; + /** * The minimum bootstrap version that we can't downgrade before. */ private final MetadataVersion minimumBootstrapVersion; + private final boolean zkMigrationEnabled; + private FeatureControlManager( LogContext logContext, QuorumFeatures quorumFeatures, SnapshotRegistry snapshotRegistry, MetadataVersion metadataVersion, - MetadataVersion minimumBootstrapVersion + MetadataVersion minimumBootstrapVersion, + boolean zkMigrationEnabled ) { this.log = logContext.logger(FeatureControlManager.class); this.quorumFeatures = quorumFeatures; this.finalizedVersions = new TimelineHashMap<>(snapshotRegistry, 0); this.metadataVersion = new TimelineObject<>(snapshotRegistry, metadataVersion); this.minimumBootstrapVersion = minimumBootstrapVersion; + this.migrationControlState = new TimelineObject<>(snapshotRegistry, + new ZkMigrationControlState(ZkMigrationState.UNINITIALIZED, false)); Review Comment: The state should begin as NONE, not uninitialized. Before replaying anything everything should be in the default state. Remember that MetadataImage.EMPTY contains no records. BTW we should get rid of UNINITIALIZED (I'll comment on that elsewhere) -- 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: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org