Details
Description
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.
Attachments
Attachments
Issue Links
- is duplicated by
-
CURATOR-165 LeaderLatch.checkLeadership(LeaderLatch.java:478) will throw a exception, then no leader will be elected.
- Closed
- is related to
-
SPARK-20884 Spark' masters will be both standby due to the bug of curator
- Resolved