Uploaded image for project: 'AMQ Streams'
  1. AMQ Streams
  2. ENTMQST-3325

KafkaMirrorMaker2 conditions do not reflect the state of the MM2 connectors

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 2.1.0.GA
    • None
    • None
    • None

    Description

      Kafka Mirror Maker 2 is in Strimzi deployed as Kafka Connect with the MM2 connectors running on top of it. That means, that when some of the connectors don't work, MM2 does not work. However, that does not seem to be reflected in the resource state. For example, when the address of the source Kafka cluster is wrong due to some typo, the cluster ends up in a state like this:

        status:
          conditions:
          - lastTransitionTime: "2021-10-13T21:29:14.323835Z"
            status: "True"
            type: Ready
          connectors:
          - connector:
              state: FAILED
              trace: "org.apache.kafka.common.KafkaException: Failed to create new KafkaAdminClient\n\tat
                org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:527)\n\tat
                org.apache.kafka.clients.admin.Admin.create(Admin.java:143)\n\tat org.apache.kafka.clients.admin.AdminClient.create(AdminClient.java:49)\n\tat
                org.apache.kafka.connect.mirror.MirrorCheckpointConnector.start(MirrorCheckpointConnector.java:73)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:184)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:209)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:348)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:331)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)\n\tat
                java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat
                java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat
                java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat
                java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat
                java.base/java.lang.Thread.run(Thread.java:829)\nCaused by: org.apache.kafka.common.config.ConfigException:
                No resolvable bootstrap urls given in bootstrap.servers\n\tat org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:88)\n\tat
                org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:47)\n\tat
                org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:482)\n\t...
                14 more\n"
              worker_id: 172.16.94.163:8083
            name: my-source-cluster->my-target-cluster.MirrorCheckpointConnector
            tasks: []
            type: source
          - connector:
              state: RUNNING
              worker_id: 172.16.94.163:8083
            name: my-source-cluster->my-target-cluster.MirrorHeartbeatConnector
            tasks:
            - id: 0
              state: RUNNING
              worker_id: 172.16.94.163:8083
            type: source
          - connector:
              state: FAILED
              trace: "org.apache.kafka.common.KafkaException: Failed to create new KafkaAdminClient\n\tat
                org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:527)\n\tat
                org.apache.kafka.clients.admin.Admin.create(Admin.java:143)\n\tat org.apache.kafka.clients.admin.AdminClient.create(AdminClient.java:49)\n\tat
                org.apache.kafka.connect.mirror.MirrorSourceConnector.start(MirrorSourceConnector.java:116)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:184)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:209)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:348)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:331)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)\n\tat
                org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)\n\tat
                java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat
                java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat
                java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat
                java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat
                java.base/java.lang.Thread.run(Thread.java:829)\nCaused by: org.apache.kafka.common.config.ConfigException:
                No resolvable bootstrap urls given in bootstrap.servers\n\tat org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:88)\n\tat
                org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:47)\n\tat
                org.apache.kafka.clients.admin.KafkaAdminClient.createInternal(KafkaAdminClient.java:482)\n\t...
                14 more\n"
              worker_id: 172.16.94.163:8083
            name: my-source-cluster->my-target-cluster.MirrorSourceConnector
            tasks: []
            type: source
          labelSelector: strimzi.io/cluster=my-mirror-maker-2,strimzi.io/name=my-mirror-maker-2-mirrormaker2,strimzi.io/kind=KafkaMirrorMaker2
          observedGeneration: 2
          replicas: 1
          url: http://my-mirror-maker-2-mirrormaker2-api.myproject.svc:8083
      

      The key connectors (Source and Checkpoint) are failed. But the overall KafkaMirrorMaker2 status is reported asĀ Ready. That seems wrong. The KMM2 state needs to reflect the state of the connectors and indicate some issues.

      Opened by Strimzi#5715

      Attachments

        Activity

          People

            Unassigned Unassigned
            scholzj JAkub Scholz
            Lukas Kral Lukas Kral
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: