You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "ulysses you (JIRA)" <ji...@apache.org> on 2019/05/17 08:31:00 UTC

[jira] [Updated] (KAFKA-8378) Kafka start error when topic data error

     [ 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)