You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@zookeeper.apache.org by "Kezhu Wang (Jira)" <ji...@apache.org> on 2022/10/20 02:12:00 UTC

[jira] [Updated] (ZOOKEEPER-4625) No reliable way to remove watch without interfering others on same paths

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

Kezhu Wang updated ZOOKEEPER-4625:
----------------------------------
    Description: 
It is possible that one node path could be watched more than once by different watchers reusing same ZooKeeper session. ZOOKEEPER-1910 reported this, but resorted to "checkWatches" to circumvent this.

I think it might be possible do some tracking works in client to support "removeWatches" without fearing client usages.

Here are some links that lead to this issue:
* ZOOKEEPER-1910: RemoveWatches wrongly removes the watcher if multiple watches exists on a path
* CURATOR-654: DistributedBarrier watcher leak and its [pr|https://github.com/apache/curator/pull/435]
* [Why removeWatches sends OpCode.checkWatches to the server?|https://lists.apache.org/thread/0kcnklcxs0s5656c1sbh3crgdodbb0qg] from mailing list.
* [Drop for watcher|https://github.com/kezhuw/zookeeper-client-rust/issues/2] from an rust implementation.

  was:
It is possible that one node path could be watched more than once by different watchers reusing same ZooKeeper session. ZOOKEEPER-1910 reported this, but resorted to "checkWatches" to circumvent this.

I think it might be possible do some tracking works in client to support "removeWatches" without fearing client usages.

Here are some links that lead to this issue:
* CURATOR-654: DistributedBarrier watcher leak and its [pr|https://github.com/apache/curator/pull/435]
* [Why removeWatches sends OpCode.checkWatches to the server?|https://lists.apache.org/thread/0kcnklcxs0s5656c1sbh3crgdodbb0qg] from mailing list.
* [Drop for watcher|https://github.com/kezhuw/zookeeper-client-rust/issues/2] from an rust implementation.


> No reliable way to remove watch without interfering others on same paths
> ------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-4625
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4625
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: java client
>    Affects Versions: 3.8.0
>            Reporter: Kezhu Wang
>            Priority: Major
>
> It is possible that one node path could be watched more than once by different watchers reusing same ZooKeeper session. ZOOKEEPER-1910 reported this, but resorted to "checkWatches" to circumvent this.
> I think it might be possible do some tracking works in client to support "removeWatches" without fearing client usages.
> Here are some links that lead to this issue:
> * ZOOKEEPER-1910: RemoveWatches wrongly removes the watcher if multiple watches exists on a path
> * CURATOR-654: DistributedBarrier watcher leak and its [pr|https://github.com/apache/curator/pull/435]
> * [Why removeWatches sends OpCode.checkWatches to the server?|https://lists.apache.org/thread/0kcnklcxs0s5656c1sbh3crgdodbb0qg] from mailing list.
> * [Drop for watcher|https://github.com/kezhuw/zookeeper-client-rust/issues/2] from an rust implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)