-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
None
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