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

Rakesh R commented on ZOOKEEPER-1667:
-------------------------------------

Nice work. I'm having few comments, please see:

# If use node.stat.getCzxid(), could be chance of missing 'NodeDataChanged' 
while setting watches. 
IMHO should compare relativeZxid with 'node.stat.getMzxid()'.
{code}
            } else if (node.stat.getCzxid() > relativeZxid) {
                watcher.process(new WatchedEvent(EventType.NodeDataChanged,
                            KeeperState.SyncConnected, path));
{code}
# Apache License is missing in tests - WatchEventWhenAutoReset.java
# In tests, logger is LoggerFactory.getLogger(ClientBase.class). Can we use 
WatchEventWhenAutoReset.class ?

> Watch event isn't handled correctly when a client reestablish to a server
> -------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1667
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1667
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.3.6, 3.4.5
>            Reporter: Jacky007
>            Assignee: Jacky007
>            Priority: Blocker
>             Fix For: 3.4.6, 3.5.0
>
>         Attachments: ZOOKEEPER-1667-b3.4.patch, ZOOKEEPER-1667.patch, 
> ZOOKEEPER-1667-r34.patch
>
>
> When a client reestablish to a server, it will send the watches which have 
> not been triggered. But the code in DataTree does not handle it correctly.
> It is obvious, we just do not notice it :)
> scenario:
> 1) Client a set a data watch on /d, then disconnect, client b delete /d and 
> create it again. When client a reestablish to zk, it will receive a 
> NodeCreated rather than a NodeDataChanged.
> 2) Client a set a exists watch on /e(not exist), then disconnect, client b 
> create /e. When client a reestablish to zk, it will receive a NodeDataChanged 
> rather than a NodeCreated.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to