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)

Reply via email to