curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "zhaogang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (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.
Date Thu, 27 Nov 2014 09:24:12 GMT

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

zhaogang updated CURATOR-168:
-----------------------------
    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. 


  was:
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. 



> 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)

Mime
View raw message