[ 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