Github user cammckenzie commented on a diff in the pull request:

    https://github.com/apache/curator/pull/66#discussion_r24375263
  
    --- Diff: 
curator-recipes/src/main/java/org/apache/curator/framework/recipes/locks/ChildReaper.java
 ---
    @@ -173,32 +191,40 @@ public boolean removePath(String path)
             return paths.remove(PathUtils.validatePath(path));
         }
     
    -    private static ScheduledExecutorService newExecutorService()
    +    public static ScheduledExecutorService newExecutorService()
         {
             return ThreadUtils.newFixedThreadScheduledPool(2, "ChildReaper");
         }
     
         private void doWork()
         {
    -        for ( String path : paths )
    +        if (shouldDoWork())
    --- End diff --
    
    There is potential for a race condition here if leadership is lost while 
attempting to do the reaping. Not sure if this is an issue or not?
    
    I would assume that it's not really an issue as:
    1.) If leadership has been lost then the connection to ZK will be lost so 
the reaping won't work anyway.
    2.) If the reaping fails due to 2 nodes concurrently attempting to delete / 
query children, then it will just run again next time anyway.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to