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)