[ https://issues.apache.org/jira/browse/KAFKA-15670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Luke Chen updated KAFKA-15670: ------------------------------ Summary: KRaft controller should set inter broker listener when migration (was: KRaft controller using wrong listener to send RPC to brokers in dual-write mode ) > KRaft controller should set inter broker listener when migration > ---------------------------------------------------------------- > > Key: KAFKA-15670 > URL: https://issues.apache.org/jira/browse/KAFKA-15670 > Project: Kafka > Issue Type: Bug > Affects Versions: 3.6.0 > Reporter: Luke Chen > Assignee: Luke Chen > Priority: Major > > During ZK migrating to KRaft, before entering dual-write mode, the KRaft > controller will send RPCs (i.e. UpdateMetadataRequest, LeaderAndIsrRequest, > and StopReplicaRequest) to the brokers. Currently, we use the inter broker > listener to send the RPC to brokers from the controller. Although these RPCs > are used for ZK brokers, in our case, the sender is actually KRaft > controller. In KRaft mode, the controller should talk with brokers via > `controller.listener.names`, not `inter.broker.listener.names`. > This issue can also be fixed by adding `inter.broker.listener.names` config > in KRaft controller configuration file, but it would be surprised that the > KRaft controller config should contain `inter.broker.listener.names`. > > The error while sending RPCs to brokers while the broker doesn't contain > PLAINTEXT listener. > {code:java} > [2023-10-23 17:12:36,788] ERROR Encountered zk migration fault: Unhandled > error in SendRPCsToBrokersEvent > (org.apache.kafka.server.fault.LoggingFaultHandler) > kafka.common.BrokerEndPointNotAvailableException: End point with listener > name PLAINTEXT not found for broker 0 > at kafka.cluster.Broker.$anonfun$node$1(Broker.scala:94) > at scala.Option.getOrElse(Option.scala:201) > at kafka.cluster.Broker.node(Broker.scala:93) > at > kafka.controller.ControllerChannelManager.addNewBroker(ControllerChannelManager.scala:122) > at > kafka.controller.ControllerChannelManager.addBroker(ControllerChannelManager.scala:105) > at > kafka.migration.MigrationPropagator.$anonfun$publishMetadata$2(MigrationPropagator.scala:97) > at > kafka.migration.MigrationPropagator.$anonfun$publishMetadata$2$adapted(MigrationPropagator.scala:97) > at scala.collection.immutable.Set$Set1.foreach(Set.scala:168) > at > kafka.migration.MigrationPropagator.publishMetadata(MigrationPropagator.scala:97) > at > kafka.migration.MigrationPropagator.sendRPCsToBrokersFromMetadataImage(MigrationPropagator.scala:217) > at > org.apache.kafka.metadata.migration.KRaftMigrationDriver$SendRPCsToBrokersEvent.run(KRaftMigrationDriver.java:723) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)