[ https://issues.apache.org/jira/browse/KAFKA-8378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ulysses you updated KAFKA-8378: ------------------------------- Description: When start kafka server, controller log output error log, but not show what topic error. Unfortunately, my kafka cluster has 300+ topics, so its difficult to find the error topic. {code:java} [2019-05-17 13:02:28,778] ERROR [Controller 12]: Error while electing or becoming controller on broker 12 (kafka.controller.KafkaController) kafka.common.KafkaException: Can't parse json string: null at kafka.utils.Json$.liftedTree1$1(Json.scala:40) at kafka.utils.Json$.parseFull(Json.scala:36) at kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:726) at kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:722) at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) at kafka.utils.ZkUtils.getReplicaAssignmentForTopics(ZkUtils.scala:722) at kafka.controller.KafkaController.initializeControllerContext(KafkaController.scala:657) at kafka.controller.KafkaController.onControllerFailover(KafkaController.scala:260) at kafka.controller.KafkaController.elect(KafkaController.scala:1578) at kafka.controller.KafkaController$Reelect$.process(KafkaController.scala:1513) at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply$mcV$sp(ControllerEventManager.scala:50) at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply(ControllerEventManager.scala:50) at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply(ControllerEventManager.scala:50) at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:31) at kafka.controller.ControllerEventManager$ControllerEventThread.doWork(ControllerEventManager.scala:49) at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:64) Caused by: java.lang.NullPointerException at scala.util.parsing.combinator.lexical.Scanners$Scanner.<init>(Scanners.scala:44) at scala.util.parsing.json.JSON$.parseRaw(JSON.scala:51) at scala.util.parsing.json.JSON$.parseFull(JSON.scala:65) at kafka.utils.Json$.liftedTree1$1(Json.scala:37) ... 16 more {code} In my scene, the error topic has node in zookeeper, just like `/brokers/topics/mytopic` , but the data of node is null. This patch avoid broker starting error because of error topic. was: When start kafka controller output error log, but not show what topic error. Unfortunately, my kafka cluster has 300+ topics, so its difficult to find the error topic. {code:java} [2019-05-17 13:02:28,778] ERROR [Controller 12]: Error while electing or becoming controller on broker 12 (kafka.controller.KafkaController) kafka.common.KafkaException: Can't parse json string: null at kafka.utils.Json$.liftedTree1$1(Json.scala:40) at kafka.utils.Json$.parseFull(Json.scala:36) at kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:726) at kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:722) at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) at kafka.utils.ZkUtils.getReplicaAssignmentForTopics(ZkUtils.scala:722) at kafka.controller.KafkaController.initializeControllerContext(KafkaController.scala:657) at kafka.controller.KafkaController.onControllerFailover(KafkaController.scala:260) at kafka.controller.KafkaController.elect(KafkaController.scala:1578) at kafka.controller.KafkaController$Reelect$.process(KafkaController.scala:1513) at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply$mcV$sp(ControllerEventManager.scala:50) at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply(ControllerEventManager.scala:50) at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply(ControllerEventManager.scala:50) at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:31) at kafka.controller.ControllerEventManager$ControllerEventThread.doWork(ControllerEventManager.scala:49) at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:64) Caused by: java.lang.NullPointerException at scala.util.parsing.combinator.lexical.Scanners$Scanner.<init>(Scanners.scala:44) at scala.util.parsing.json.JSON$.parseRaw(JSON.scala:51) at scala.util.parsing.json.JSON$.parseFull(JSON.scala:65) at kafka.utils.Json$.liftedTree1$1(Json.scala:37) ... 16 more {code} In my scene, the error topic has node in zookeeper, just like `/brokers/topics/mytopic` , but the data of node is null. This patch avoid broker starting error because of error topic. Summary: Kafka start error when topic data error (was: kafka start error when topic data error) > Kafka start error when topic data error > --------------------------------------- > > Key: KAFKA-8378 > URL: https://issues.apache.org/jira/browse/KAFKA-8378 > Project: Kafka > Issue Type: Improvement > Components: controller > Affects Versions: 1.0.2, 1.1.1, 2.0.1, 2.2.0, 2.1.1 > Reporter: ulysses you > Priority: Minor > Attachments: 89399ffe4995ea9b4c2ebdb788f5dfd55001bc80.patch > > > When start kafka server, controller log output error log, but not show what > topic error. Unfortunately, my kafka cluster has 300+ topics, so its > difficult to find the error topic. > {code:java} > [2019-05-17 13:02:28,778] ERROR [Controller 12]: Error while electing or > becoming controller on broker 12 (kafka.controller.KafkaController) > kafka.common.KafkaException: Can't parse json string: null > at kafka.utils.Json$.liftedTree1$1(Json.scala:40) > at kafka.utils.Json$.parseFull(Json.scala:36) > at > kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:726) > at > kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:722) > at > scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) > at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) > at kafka.utils.ZkUtils.getReplicaAssignmentForTopics(ZkUtils.scala:722) > at > kafka.controller.KafkaController.initializeControllerContext(KafkaController.scala:657) > at > kafka.controller.KafkaController.onControllerFailover(KafkaController.scala:260) > at kafka.controller.KafkaController.elect(KafkaController.scala:1578) > at > kafka.controller.KafkaController$Reelect$.process(KafkaController.scala:1513) > at > kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply$mcV$sp(ControllerEventManager.scala:50) > at > kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply(ControllerEventManager.scala:50) > at > kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply(ControllerEventManager.scala:50) > at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:31) > at > kafka.controller.ControllerEventManager$ControllerEventThread.doWork(ControllerEventManager.scala:49) > at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:64) > Caused by: java.lang.NullPointerException > at > scala.util.parsing.combinator.lexical.Scanners$Scanner.<init>(Scanners.scala:44) > at scala.util.parsing.json.JSON$.parseRaw(JSON.scala:51) > at scala.util.parsing.json.JSON$.parseFull(JSON.scala:65) > at kafka.utils.Json$.liftedTree1$1(Json.scala:37) > ... 16 more > {code} > In my scene, the error topic has node in zookeeper, just like > `/brokers/topics/mytopic` , but the data of node is null. > This patch avoid broker starting error because of error topic. -- This message was sent by Atlassian JIRA (v7.6.3#76005)