"Path length must be > 0" error during startup ----------------------------------------------
Key: KAFKA-294 URL: https://issues.apache.org/jira/browse/KAFKA-294 Project: Kafka Issue Type: Bug Reporter: Thomas Dudziak When starting Kafka 0.7.0 using zkclient-0.1.jar, I get this error: {noformat} INFO 2012-03-06 02:39:04,072 main kafka.server.KafkaZooKeeper Registering broker /brokers/ids/1 FATAL 2012-03-06 02:39:04,111 main kafka.server.KafkaServer Fatal error during startup. java.lang.IllegalArgumentException: Path length must be > 0 at org.apache.zookeeper.common.PathUtils.validatePath(PathUtils.java:48) at org.apache.zookeeper.common.PathUtils.validatePath(PathUtils.java:35) at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:620) at org.I0Itec.zkclient.ZkConnection.create(ZkConnection.java:87) at org.I0Itec.zkclient.ZkClient$1.call(ZkClient.java:308) at org.I0Itec.zkclient.ZkClient$1.call(ZkClient.java:304) at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:675) at org.I0Itec.zkclient.ZkClient.create(ZkClient.java:304) at org.I0Itec.zkclient.ZkClient.createPersistent(ZkClient.java:213) at org.I0Itec.zkclient.ZkClient.createPersistent(ZkClient.java:223) at org.I0Itec.zkclient.ZkClient.createPersistent(ZkClient.java:223) at kafka.utils.ZkUtils$.createParentPath(ZkUtils.scala:48) at kafka.utils.ZkUtils$.createEphemeralPath(ZkUtils.scala:60) at kafka.utils.ZkUtils$.createEphemeralPathExpectConflict(ZkUtils.scala:72) at kafka.server.KafkaZooKeeper.registerBrokerInZk(KafkaZooKeeper.scala:57) at kafka.log.LogManager.startup(LogManager.scala:124) at kafka.server.KafkaServer.startup(KafkaServer.scala:80) at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:47) at kafka.Kafka$.main(Kafka.scala:60) at kafka.Kafka.main(Kafka.scala) {noformat} The problem seems to be this code in {{ZkClient}}'s {{createPersistent}} method: {code:java} String parentDir = path.substring(0, path.lastIndexOf('/')); createPersistent(parentDir, createParents); createPersistent(path, createParents); {code} which doesn't check for whether {{parentDir}} is an empty string, which it will become for {{/brokers/ids/1}} after two recursions. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira