You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "Osman Sebati Cam (JIRA)" <ji...@apache.org> on 2014/12/07 20:06:12 UTC

[jira] [Commented] (CURATOR-168) Error 'Path must start with / character' caused by code 'setNode(event.getName());' in line 487 of LeaderLatch.class source file in which 'event.getName()' sometimes only return the last part of znode path instead of the full path.

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

Osman Sebati Cam commented on CURATOR-168:
------------------------------------------

 getting the same issue with curator version 4.6 as well, so highlighting that none of the fixes from 4.6 to 4.7 is causing that, here is the full stack trace

 [CuratorFramework-0-EventThread] ERROR o.a.c.f.imps.CuratorFrameworkImpl - Background exception was not retry-able or retry gave up
java.lang.IllegalArgumentException: Path must start with / character
at org.apache.curator.utils.PathUtils.validatePath(PathUtils.java:53) 
at org.apache.curator.utils.ZKPaths.getNodeFromPath(ZKPaths.java:56) 
at org.apache.curator.framework.recipes.leader.LeaderLatch.checkLeadership(LeaderLatch.java:523)
at org.apache.curator.framework.recipes.leader.LeaderLatch.access$700(LeaderLatch.java:62) 
at org.apache.curator.framework.recipes.leader.LeaderLatch$7.processResult(LeaderLatch.java:581)
at org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:715)
at org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:502)
at org.apache.curator.framework.imps.GetChildrenBuilderImpl$2.processResult(GetChildrenBuilderImpl.java:166)
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:590) 
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:498) 

(as it is happening quite seldom there is no testcase to reproduce this)

> Error 'Path must start with / character'  caused by code 'setNode(event.getName());'  in line 487 of LeaderLatch.class source file in which  'event.getName()' sometimes only return the last part of znode path instead of the full path.
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CURATOR-168
>                 URL: https://issues.apache.org/jira/browse/CURATOR-168
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Recipes
>    Affects Versions: 2.7.0
>         Environment: operating system:ubuntu
>            Reporter: zhaogang
>            Priority: Blocker
>             Fix For: 3.0.0, 2.7.1
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> We use LeaderLatch for leader election within our several zookeeper clients,but sometimes our leaderLatch stopped to work due to a error "Background exception was not retry-able or retry gave up java.lang.IllegalArgumentException: Path must start with / characte".
> To found the reason we tracked the execution of program in class LeaderLatch with debug mode,we found the code "setNode(event.getName());"  in line 487 of LeaderLatch.class in which "event.getName()" code sometimes didn't return the full path of the znode but only return the last part of the full path,like "_c_b1097329-4a77-493b-806c-5c888067eeab-latch-0000004068", but the full path should be "/api1/leaders/_c_b1097329-4a77-493b-806c-5c888067eeab-latch-0000004068".
> So  the when event.getName()=="_c_b1097329-4a77-493b-806c-5c888067eeab-latch-0000004068", the program will fail to go through the codes below:
> 1.LeaderLatch.checkLeadership()  line 526
> 2.ZKPaths.getNodeFromPath()      line 61
> 3.PathUtils.validatePath(path)        line 46
> And then the LeaderLatch stopped to work. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)