You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Thomas Dudziak (Resolved) (JIRA)" <ji...@apache.org> on 2012/03/06 17:57:02 UTC

[jira] [Resolved] (KAFKA-294) "Path length must be > 0" error during startup

     [ https://issues.apache.org/jira/browse/KAFKA-294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Dudziak resolved KAFKA-294.
----------------------------------

    Resolution: Invalid
    
> "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:
> 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)
> The problem seems to be this code in ZkClient's createPersistent method:
> String parentDir = path.substring(0, path.lastIndexOf('/'));
> createPersistent(parentDir, createParents);
> createPersistent(path, createParents);
> 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