You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Luke Chen (Jira)" <ji...@apache.org> on 2024/05/28 06:48:00 UTC

[jira] [Created] (KAFKA-16848) Reverting KRaft migration for "Migrating brokers to KRaft" state is wrong

Luke Chen created KAFKA-16848:
---------------------------------

             Summary: Reverting KRaft migration for "Migrating brokers to KRaft" state is wrong
                 Key: KAFKA-16848
                 URL: https://issues.apache.org/jira/browse/KAFKA-16848
             Project: Kafka
          Issue Type: Bug
    Affects Versions: 3.7.0
            Reporter: Luke Chen


Hello,

 

I would like to report a mistake in the {_}Kafka 3.7 Documentation -> 6.10 KRaft -> ZooKeeper to KRaft Migration -> Reverting to ZooKeeper mode During the Migration{_}.

 

While migrating my Kafka + Zookeeper cluster to KRaft and testing rollbacks at a different migration stages I have noticed, that "{_}Directions for reverting{_}" provided for "{_}Migrating brokers to KRaft{_}" are wrong.



Following the first step provided in documentation you suppose to : _On each broker, remove the process.roles configuration, and restore the zookeeper.connect configuration to its previous value. If your cluster requires other ZooKeeper configurations for brokers, such as zookeeper.ssl.protocol, re-add those configurations as well. Then perform a rolling._


In that case, if you remove _process.roles_ configuration and restore  _zookeeper.connect_ as well as other _ZooKeeper_ configuration (If your cluster requires) you will receive an error that looks like this:
[2024-05-28 08:09:49,396] lvl=ERROR Exiting Kafka due to fatal exception logger=kafka.Kafka$

java.lang.IllegalArgumentException: requirement failed: controller.listener.names must be empty when not running in KRaft mode: [CONTROLLER]

        at scala.Predef$.require(Predef.scala:337)

        at kafka.server.KafkaConfig.validateValues(KafkaConfig.scala:2441)

        at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:2290)

        at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:1639)

        at kafka.Kafka$.buildServer(Kafka.scala:71)

        at kafka.Kafka$.main(Kafka.scala:90)

        at kafka.Kafka.main(Kafka.scala)

 

However I was able to perform rollback successfully by performing additional steps:
 * Restore _zookeeper.metadata.migration.enable=true_ line in broker configuration;
 * We are using {_}[authorizer.class.name|http://authorizer.class.name/]{_}, so it also had to be reverted: _org.apache.kafka.metadata.authorizer.StandardAuthorizer_ -> {_}kafka.security.authorizer.AclAuthorizer{_};

 

I believe that should be mentioned.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)