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

Hadoop QA commented on ZOOKEEPER-2774:
--------------------------------------

-1 overall.  GitHub Pull Request  Build
      

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 28 new or modified tests.

    -1 javadoc.  The javadoc tool appears to have generated 1 warning messages.

    +1 javac.  The applied patch does not increase the total number of javac 
compiler warnings.

    -1 findbugs.  The patch appears to introduce 90 new Findbugs (version 
3.0.1) warnings.

    +1 release audit.  The applied patch does not increase the total number of 
release audit warnings.

    -1 core tests.  The patch failed core unit tests.

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/690//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/690//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/690//console

This message is automatically generated.

> Ephemeral znode will not be removed when sesstion timeout, if the system time 
> of ZooKeeper node changes unexpectedly.
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2774
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2774
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.4.8, 3.4.9, 3.4.10
>         Environment: Centos6.5
>            Reporter: JiangJiafu
>
> 1. Deploy a ZooKeeper cluster with one node.
> 2. Create a Ephemeral znode.
> 3. Change the system time of the ZooKeeper node to a earlier point.
> 4. Disconnect the client with the ZooKeeper server.
> Then the ephemeral znode will exist for a long time even when session timeout.
> I have read the ZooKeeper source code and I find the code int 
> SessionTrackerImpl.java,
> {code:title=SessionTrackerImpl.java|borderStyle=solid}
>     @Override
>     synchronized public void run() {
>         try {
>             while (running) {
>                 currentTime = System.currentTimeMillis();
>                 if (nextExpirationTime > currentTime) {
>                     this.wait(nextExpirationTime - currentTime);
>                     continue;
>                 }
>                 SessionSet set;
>                 set = sessionSets.remove(nextExpirationTime);
>                 if (set != null) {
>                     for (SessionImpl s : set.sessions) {
>                         setSessionClosing(s.sessionId);
>                         expirer.expire(s);
>                     }
>                 }
>                 nextExpirationTime += expirationInterval;
>             }
>         } catch (InterruptedException e) {
>             handleException(this.getName(), e);
>         }
>         LOG.info("SessionTrackerImpl exited loop!");
>     }
> {code}
> I think it may be better to use System.nanoTime(), not 
> System.currentTimeMillis, because the later can be changed manually or 
> automatically by a NTP client. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to