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)