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

Raul Gutierrez Segales commented on ZOOKEEPER-1909:
---------------------------------------------------

Thanks for the review [~rakeshr], agreed on point 1 & 3. Though wrt #2:

bq. Consider a case where multiple clients added their watcher on same znode 
path. Now "list" will not be null, and I think, we need to see whether my 
"watcher" exists on the list. If not again throw exception no ?
{noformat}
         HashSet<Watcher> list = watchTable.get(path);
         // ...
         list.remove(watcher);
{noformat}

I agree, but not only that - we should do the same check for paths (the prev 
HashSet). Updating the patch. 

> removeWatches doesn't return NOWATCHER when there is no watch set
> -----------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1909
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1909
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.5.0
>            Reporter: Raul Gutierrez Segales
>             Fix For: 3.5.0
>
>         Attachments: ZOOKEEPER-1909.patch, ZOOKEEPER-1909.patch
>
>
> ZOOKEEPER-442 introduced support for a new opcode: removeWatches. The way it 
> was implemented though, implies that you need to check on the client side if 
> a watch/watcher is set *before* you send your request to the server. If you 
> don't, ZK will just swallow your request and won't return an error code if 
> there isn't a watch set for that path.
> I noticed this whilst implementing removeWatches for Kazoo [1]. As mentioned, 
> I guess it could be expected that clients should do the check on their side 
> but I think that the correct thing would to have the server do the validation 
> and return the error code accordingly as well.
> [~rakeshr], [~phunt]: thoughts?
> [1] 
> https://github.com/rgs1/kazoo/commit/44ca48e975aeea3fd0664fe13136a72caf89e54f



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to