You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Luke Chen (Jira)" <ji...@apache.org> on 2025/03/13 12:21:00 UTC

[jira] [Created] (KAFKA-18979) kraft.version wrongly upgraded to 1 after upgrading to v4.0

Luke Chen created KAFKA-18979:
---------------------------------

             Summary: 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
            Reporter: Luke Chen


Based on the [doc|https://kafka.apache.org/40/documentation/#static_versus_dynamic_kraft_quorums], wwhen 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)