[ https://issues.apache.org/jira/browse/KAFKA-18979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17935250#comment-17935250 ]
José Armando García Sancio edited comment on KAFKA-18979 at 3/13/25 3:22 PM: ----------------------------------------------------------------------------- I don't think we should make it a block for 4.0 for two reasons. The same issue should be present in 3.9 so it is not a regression. You can argue that this is a UI issue. [~showuon] , Do you still see this output after incorrectly upgrading the kraft.version and after including KAFKA-18920? ./bin/kafka-features.sh --bootstrap-controller localhost:9093 describe Feature: kraft.version SupportedMinVersion: 0 SupportedMaxVersion: 1 FinalizedVersionLevel: 1 Epoch: 245 ... I am going to take this Jira as my PR for KAFKA-16538 will also include fixing the incorrectly written FeatureLevelRecord that were added to the log thanks to this issue. was (Author: jsancio): I don't think we should make it a block for 4.0 for two reasons. The same issue should be present in 3.9 so it is not a regression. You can argue that this is a UI issue. [~showuon] , Do you still see this output after incorrectly upgrading the kraft.version and after including KAFKA-18920? ./bin/kafka-features.sh --bootstrap-controller localhost:9093 describe Feature: kraft.version SupportedMinVersion: 0 SupportedMaxVersion: 1 FinalizedVersionLevel: 1 Epoch: 245 ... I am going to take this Jira as my PR for KAFKA-18920 will also include fixing the incorrectly written FeatureLevelRecord that were added to the log thanks to this issue. > kraft.version wrongly upgraded to 1 after upgrading to v4.0 > ----------------------------------------------------------- > > Key: KAFKA-18979 > URL: https://issues.apache.org/jira/browse/KAFKA-18979 > Project: Kafka > Issue Type: Bug > Affects Versions: 4.0.0 > Reporter: Luke Chen > Priority: Major > > Since KAFKA-16538 is still not implemented, we don't support migration from > static quorum to dynamic quorum so far. > Based on the > [doc|https://kafka.apache.org/40/documentation/#static_versus_dynamic_kraft_quorums], > when using `controller.quorum.voters` in the config, it'll be "static KRaft > quorum", and the `kraft.version` will be 0. But after upgrading to v4.0, it's > wrongly upgraded to 1. Under the `kraft.version` is set to 1, the dynamic > controller addition/removal will fail, which is confusing to users. > > Steps to reproduce: > # start a 3.9 controller node with `controller.quorum.voters`, instead of > `controller.quorum.bootstrap.servers` > # Verify the `kraft.version` Finalized version is 0 > {code:java} > bin/kafka-features.sh --bootstrap-controller localhost:9093 describe > Feature: kraft.version SupportedMinVersion: 0 SupportedMaxVersion: 1 > FinalizedVersionLevel: 0 Epoch: 4 > Feature: metadata.version SupportedMinVersion: 3.0-IV1 > SupportedMaxVersion: 3.9-IV0 FinalizedVersionLevel: 3.9-IV0 Epoch: > 4{code} > # Upgrade to v4.0 following this > [doc|https://kafka.apache.org/40/documentation/#upgrade_servers_4_0_0] > {code:java} > bin/kafka-features.sh --bootstrap-controller localhost:9093 upgrade > --release-version 4.0 > group.version was upgraded to 1. > kraft.version was upgraded to 1. > metadata.version was upgraded to 25. > transaction.version was upgraded to 2. {code} > # Verify the `kraft.version` Finalized version is 1 now > {code:java} > ./bin/kafka-features.sh --bootstrap-controller localhost:9093 describe > > Feature: eligible.leader.replicas.version SupportedMinVersion: 0 > SupportedMaxVersion: 1 FinalizedVersionLevel: 0 Epoch: 245 > Feature: group.version SupportedMinVersion: 0 SupportedMaxVersion: 1 > FinalizedVersionLevel: 1 Epoch: 245 > Feature: kraft.version SupportedMinVersion: 0 SupportedMaxVersion: 1 > FinalizedVersionLevel: 1 Epoch: 245 > Feature: metadata.version SupportedMinVersion: 3.3-IV3 > SupportedMaxVersion: 4.0-IV3 FinalizedVersionLevel: 4.0-IV3 Epoch: 245 > Feature: transaction.version SupportedMinVersion: 0 > SupportedMaxVersion: 2 FinalizedVersionLevel: 2 Epoch: 245{code} > # Run dynamically controller addition/removal > {code:java} > bin/kafka-metadata-quorum.sh --command-config > config/kraft/controller4.properties --bootstrap-controller localhost:9093 > add-controller > org.apache.kafka.common.errors.UnsupportedVersionException: Cluster doesn't > support adding voter because the kraft.version feature is 0 > java.util.concurrent.ExecutionException: > org.apache.kafka.common.errors.UnsupportedVersionException: Cluster doesn't > support adding voter because the kraft.version feature is 0 > at > java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) > at > java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) > at > org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:155) > at > org.apache.kafka.tools.MetadataQuorumCommand.handleAddController(MetadataQuorumCommand.java:432) > at > org.apache.kafka.tools.MetadataQuorumCommand.execute(MetadataQuorumCommand.java:148) > at > org.apache.kafka.tools.MetadataQuorumCommand.mainNoExit(MetadataQuorumCommand.java:81) > at > org.apache.kafka.tools.MetadataQuorumCommand.main(MetadataQuorumCommand.java:76) > Caused by: org.apache.kafka.common.errors.UnsupportedVersionException: > Cluster doesn't support adding voter because the kraft.version feature is 0 > {code} > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)