Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-17788

During ZK migration, always include control.plane.listener.name in advertisedBrokerListeners

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 3.9.0
    • 3.9.0
    • None
    • None

    Description

      When testing migration with Kafka 3.9.0-RC2, the broker fail to start when they are first rolled to start the migration with the following error:

      2024-10-11 21:37:04,060 ERROR Exiting Kafka due to fatal exception (kafka.Kafka$) [main]
      java.lang.IllegalArgumentException: requirement failed: control.plane.listener.name must be a listener name defined in advertised.listeners. The valid options based on currently configured listeners are REPLICATION-9091,PLAIN-9092,TLS-9093
      	at scala.Predef$.require(Predef.scala:337)
      	at kafka.server.KafkaConfig.validateValues(KafkaConfig.scala:1019)
      	at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:843)
      	at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:185)
      	at kafka.Kafka$.buildServer(Kafka.scala:71)
      	at kafka.Kafka$.main(Kafka.scala:90)
      	at kafka.Kafka.main(Kafka.scala)
      

      This is despite our configuration having the

      {control.plane.listener.name}

      properly configured:

      listener.security.protocol.map=CONTROLPLANE-9090:SSL,REPLICATION-9091:SSL,PLAIN-9092:SASL_PLAINTEXT,TLS-9093:SSL
      listeners=CONTROLPLANE-9090://0.0.0.0:9090,REPLICATION-9091://0.0.0.0:9091,PLAIN-9092://0.0.0.0:9092,TLS-9093://0.0.0.0:9093
      advertised.listeners=CONTROLPLANE-9090://cluster-9833cba6-kafka-1.cluster-9833cba6-kafka-brokers.test-suite-namespace.svc:9090,REPLICATION-9091://cluster-9833cba6-kafka-1.cluster-9833cba6-kafka-brokers.test-suite-namespace.svc:9091,PLAIN-9092://cluster-9833cba6-kafka-1.cluster-9833cba6-kafka-brokers.test-suite-namespace.svc:9092,TLS-9093://cluster-9833cba6-kafka-1.cluster-9833cba6-kafka-brokers.test-suite-namespace.svc:9093
      inter.broker.listener.name=REPLICATION-9091
      control.plane.listener.name=CONTROLPLANE-9090
      

      It looks like 3.9.0-RC2 filters out the control plane listener (maybe because it is used by the KRaft controllers as well?) and runs into this error. This worked fine in 3.8.0, so this seems like a regression in 3.9.0 that should be fixed.

      The full log from the broker node is attached. It includes the full configuration of the broker as well.

      Attachments

        Issue Links

          Activity

            People

              cmccabe Colin McCabe
              scholzj Jakub Scholz
              Luke Chen Luke Chen
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: