zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jordan Zimmerman (JIRA)" <j...@apache.org>
Subject [jira] [Assigned] (ZOOKEEPER-2648) Container node never gets deleted if it never had children
Date Tue, 01 Aug 2017 18:36:01 GMT

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

Jordan Zimmerman reassigned ZOOKEEPER-2648:

    Assignee:     (was: Jordan Zimmerman)

> Container node never gets deleted if it never had children
> ----------------------------------------------------------
>                 Key: ZOOKEEPER-2648
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2648
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.5.0
>            Reporter: Hadriel Kaplan
> If a client creates a Container node, but does not also create a child within that Container,
the Container will never be deleted. This may seem like a bug in the client for not subsequently
creating a child, but we can't assume the client remains connected, or that the client didn't
just change its mind (due to some recipe being canceled, for example).
> The bug is in ContainerManager.getCandidates(), which only considers a node a candidate
if its Cversion > 0. The comments indicate this was done intentionally, to avoid a race
condition whereby the Container was created right before a cleaning period, and would get
cleaned up before the child could be created - so to avoid that the check is performed to
verify the Cversion > 0.
> Instead, I propose that if the Cversion is 0 but the Ctime is more than a checkIntervalMs
old, then it be deleted. In other words, if the Container node has been around for a whole
cleaning round already and no child has been  created since, then go ahead and clean it up.
> I can provide a patch if others agree with such a change.

This message was sent by Atlassian JIRA

View raw message