zhaogang created CURATOR-168:
--------------------------------

             Summary: 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


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)

Reply via email to