[ 
https://issues.apache.org/jira/browse/KAFKA-799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13598178#comment-13598178
 ] 

Swapnil Ghike commented on KAFKA-799:
-------------------------------------

Yes, booting up a kafka 0.8 server after having zk data created by kafka 0.7 
indeed produces this message. The zk data structures used in 0.7 and 0.8 are 
different, and as you mentioned, both versions store the data in 
/tmp/zookeeper. So you need to clean up this directory before switching the 
versions. Though it's not a big issue, it maybe worthwhile to put the zookeeper 
data in separate directories for kafka 0.7 and 0.8 to avoid on-boarding 
obstacles. For now, you can do this locally by changing the path in 
config/zookeeper.properties. 

Kafka parses the zookeeper data for many purposes and any zk data that kafka 
uses is written using some kafka logic / admin tool. Since zookeeper is kafka's 
source of truth, we probably want to see an exception if the zookeeper data 
gets corrupted due to some external reason. For example, in this case, avoiding 
the exception will hide the fact that kafka can no longer find 
partitions/replicas of an existing topic.
                
> Infinite loop trying to start a broker 
> ---------------------------------------
>
>                 Key: KAFKA-799
>                 URL: https://issues.apache.org/jira/browse/KAFKA-799
>             Project: Kafka
>          Issue Type: Bug
>          Components: controller
>    Affects Versions: 0.8
>         Environment: Mac OS X 10.7.5
>            Reporter: Bob
>            Assignee: Neha Narkhede
>            Priority: Blocker
>              Labels: patch
>
> I followed the quickstart instructions
> https://cwiki.apache.org/confluence/display/KAFKA/Kafka+0.8+Quick+Start
> It caused an infinite loop while trying to start a broker. 
> [2013-03-08 16:55:19,287] ERROR Error while electing or becoming leader on 
> broker 1 (kafka.server.ZookeeperLeaderElector)
> kafka.common.KafkaException: Can't parse json string: null
> at kafka.utils.Json$.liftedTree1$1(Json.scala:20)
> at kafka.utils.Json$.parseFull(Json.scala:16)
> at 
> kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:484)
> at 
> kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:480)
> at 
> scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at kafka.utils.ZkUtils$.getReplicaAssignmentForTopics(ZkUtils.scala:480)
> at 
> kafka.controller.KafkaController.initializeControllerContext(KafkaController.scala:451)
> at 
> kafka.controller.KafkaController.onControllerFailover(KafkaController.scala:225)
> at 
> kafka.controller.KafkaController$$anonfun$1.apply$mcV$sp(KafkaController.scala:87)
> at kafka.server.ZookeeperLeaderElector.elect(ZookeeperLeaderElector.scala:53)
> at 
> kafka.server.ZookeeperLeaderElector$LeaderChangeListener.handleDataDeleted(ZookeeperLeaderElector.scala:106)
> at org.I0Itec.zkclient.ZkClient$6.run(ZkClient.java:549)
> at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71)
> Caused by: java.lang.NullPointerException
> at 
> scala.util.parsing.combinator.lexical.Scanners$Scanner.<init>(Scanners.scala:52)
> at scala.util.parsing.json.JSON$.parseRaw(JSON.scala:71)
> at scala.util.parsing.json.JSON$.parseFull(JSON.scala:85)
> at kafka.utils.Json$.liftedTree1$1(Json.scala:17)
> ... 13 more
> I tracked the issue to unhandled Java null string in these 2 methods in 
> ZkUtils: getReplicaAssignmentForTopics, getPartitionAssignmentForTopics.
> I am submitting a patch with the fixes. Now quickstart works fine for me.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to