curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CURATOR-173) InterProcessSemaphoreV2 nodes not reapable
Date Thu, 05 Mar 2015 17:21:38 GMT

    [ https://issues.apache.org/jira/browse/CURATOR-173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14349121#comment-14349121
] 

ASF GitHub Bot commented on CURATOR-173:
----------------------------------------

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

    https://github.com/apache/curator/pull/67#discussion_r25882210
  
    --- Diff: curator-recipes/src/main/java/org/apache/curator/framework/recipes/locks/LockSchema.java
---
    @@ -0,0 +1,22 @@
    +package org.apache.curator.framework.recipes.locks;
    +
    +import java.util.HashSet;
    +import java.util.Set;
    +
    +import com.google.common.collect.Sets;
    +
    +public class LockSchema {
    +    private final Set<String> paths;
    +
    +    public LockSchema() {
    +        paths = new HashSet<String>();
    +    }
    +
    +    public LockSchema(Set<String> paths) {
    +        this.paths = Sets.newHashSet(paths);
    +    }
    +
    +    public Set<String> getPaths() {
    +        return Sets.newHashSet(paths);
    +    }
    +}
    --- End diff --
    
    This doesn't look like it adds a lot of value as a concrete class.  I would either just
pass the set directly to the reaper, or else turn this into an interface.  You could also
use Iterable instead of Set since you don't really depend on Set semantics.


> InterProcessSemaphoreV2 nodes not reapable
> ------------------------------------------
>
>                 Key: CURATOR-173
>                 URL: https://issues.apache.org/jira/browse/CURATOR-173
>             Project: Apache Curator
>          Issue Type: Bug
>            Reporter: David Kesler
>            Assignee: Jordan Zimmerman
>
> The curator documentation recommends using a reaper or childreaper to clean up stale
lock nodes.  This worked for InterProcessSemaphore locks.  However lock paths that are created
by InterProcessSemaphoreV2 cannot be reaped.  The V2 recipe creates two subnodes beneath the
lock node, 'locks' and 'leases', which are never cleaned up by the recipe.  This ensures that
the lock node itself will never be empty and thus never reaped.  It doesn't seem like there's
any safe way of handling cleaning up after an InterProcessSemaphoreV2 using canonical curator
recipes.  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message