[
https://issues.apache.org/jira/browse/ZOOKEEPER-1412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13227960#comment-13227960
]
Hadoop QA commented on ZOOKEEPER-1412:
--------------------------------------
+1 overall. Here are the results of testing the latest attachment
http://issues.apache.org/jira/secure/attachment/12518091/ZOOKEEPER-1412_trunk.patch
against trunk revision 1297740.
+1 @author. The patch does not contain any @author tags.
+1 tests included. The patch appears to include 6 new or modified tests.
+1 javadoc. The javadoc tool did not generate any warning messages.
+1 javac. The applied patch does not increase the total number of javac
compiler warnings.
+1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9)
warnings.
+1 release audit. The applied patch does not increase the total number of
release audit warnings.
+1 core tests. The patch passed core unit tests.
+1 contrib tests. The patch passed contrib unit tests.
Test results:
https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/990//testReport/
Findbugs warnings:
https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/990//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output:
https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/990//console
This message is automatically generated.
> java client watches inconsistently triggered on reconnect
> ---------------------------------------------------------
>
> Key: ZOOKEEPER-1412
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1412
> Project: ZooKeeper
> Issue Type: Bug
> Components: server
> Affects Versions: 3.3.3, 3.3.4, 3.4.0, 3.4.1, 3.4.2, 3.4.3
> Reporter: Botond Hejj
> Assignee: Patrick Hunt
> Priority: Blocker
> Fix For: 3.3.5, 3.4.4, 3.5.0
>
> Attachments: ZOOKEEPER-1412_br33.patch, ZOOKEEPER-1412_br34.patch,
> ZOOKEEPER-1412_trunk.patch
>
>
> I've observed an inconsistent behavior in java client watches. The
> inconsistency relates to the behavior after the client reconnects to the
> zookeeper ensemble.
> After the client reconnects to the ensemble only those watches should trigger
> which should have been triggered also if the connections was not lost. This
> means if I watch for changes in node /foo and there is no change there than
> my watch should not be triggered on reconnecting to the ensemble.
> This is not always the case in the java client.
> I've debugged the issues and I could locate the case when the watch is always
> triggered on reconnect. This is consistently happening if I connect to a
> follower in the ensemble and I don't do any operation which goes through the
> leader.
> Looking at the code I see that the client stores the lastzxid and sends that
> with its request. This is 0 on startup and will be updated everytime from the
> server replies. This lastzxid is also sent to the server after reconnect
> together with watches. The server decides which watch to trigger based on
> this lastzxid probably because that should mean the last known state of the
> client. If this lastzxid is 0 than all the watches are triggered.
> I've checked why is this lastzxid 0. I thought it shouldn't be since there
> was already a request to the server to set the watch and in the reply the
> server could have sent back the zxid but it turns out that it sends just 0.
> Looking at the server code I see that for requests which doesn't go through
> the leader the follower server just sends back the same zxid that the client
> sent.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira