[
https://issues.apache.org/jira/browse/CURATOR-388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rhys Yarranton updated CURATOR-388:
-----------------------------------
Description:
PathChildrenCache uses EnsureContainers to create the path as a container(if it
does not already exist). If at some point that container is empty, ZooKeeper
may remove it. If at some later point the path is recreated and a child node
added, the PathChildrenCache will not detect it. No event will be fired, nor
will the child node appear in getCurrentData().
The attached test reproduces the problem most of the time if the ZooKeeper
server has znode.container.checkIntervalMs reduced to 1000.
A workaround is to explicitly create the path as a non-container before
starting the PathChildrenCache.
NB there are two related problems here. One is that it has trouble handling
containers. More serious is that it creates a container, thus running itself
into trouble.
was:
PathChildrenCache uses CreateContainers to create the path as a container(if it
does not already exist). If at some point that container is empty, ZooKeeper
may remove it. If at some later point the path is recreated and a child node
added, the PathChildrenCache will not detect it. No event will be fired, nor
will the child node appear in getCurrentData().
The attached test reproduces the problem most of the time if the ZooKeeper
server has znode.container.checkIntervalMs reduced to 1000.
A workaround is to explicitly create the path as a non-container before
starting the PathChildrenCache.
NB there are two related problems here. One is that it has trouble handling
containers. More serious is that it creates a container, thus running itself
into trouble.
> PathChildrenCache stops working if container node is auto-removed and later
> recreated
> -------------------------------------------------------------------------------------
>
> Key: CURATOR-388
> URL: https://issues.apache.org/jira/browse/CURATOR-388
> Project: Apache Curator
> Issue Type: Bug
> Components: Recipes
> Affects Versions: 3.2.1
> Environment: zookeeper 3.5.2-alpha
> Reporter: Rhys Yarranton
> Attachments: EmptyPathChildrenCacheTest.java
>
>
> PathChildrenCache uses EnsureContainers to create the path as a container(if
> it does not already exist). If at some point that container is empty,
> ZooKeeper may remove it. If at some later point the path is recreated and a
> child node added, the PathChildrenCache will not detect it. No event will be
> fired, nor will the child node appear in getCurrentData().
> The attached test reproduces the problem most of the time if the ZooKeeper
> server has znode.container.checkIntervalMs reduced to 1000.
> A workaround is to explicitly create the path as a non-container before
> starting the PathChildrenCache.
> NB there are two related problems here. One is that it has trouble handling
> containers. More serious is that it creates a container, thus running itself
> into trouble.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)