Description
People will not know that the zookeeper paths are not compatible. When you try to start the 0.8 broker pointed at a 0.7 zookeeper you get a NullPointerException. We should detect this and give a more sane error.
Error:
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$2.apply(ZkUtils.scala:498)
at kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$2.apply(ZkUtils.scala:494)
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:494)
at kafka.controller.KafkaController.initializeControllerContext(KafkaController.scala:446)
at kafka.controller.KafkaController.onControllerFailover(KafkaController.scala:220)
at kafka.controller.KafkaController$$anonfun$1.apply$mcV$sp(KafkaController.scala:85)
at kafka.server.ZookeeperLeaderElector.elect(ZookeeperLeaderElector.scala:53)
at kafka.server.ZookeeperLeaderElector.startup(ZookeeperLeaderElector.scala:43)
at kafka.controller.KafkaController.startup(KafkaController.scala:381)
at kafka.server.KafkaServer.startup(KafkaServer.scala:90)
at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:34)
at kafka.Kafka$.main(Kafka.scala:46)
at kafka.Kafka.main(Kafka.scala)
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)
... 16 more