You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Marshall McMullen (JIRA)" <ji...@apache.org> on 2013/02/22 07:14:15 UTC

[jira] [Updated] (ZOOKEEPER-1366) Zookeeper should be tolerant of clock adjustments

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

Marshall McMullen updated ZOOKEEPER-1366:
-----------------------------------------

    Attachment: ZOOKEEPER-1366.patch

This has become a blocker issues for us, so I'm resurrecting this patch so it applies cleanly to the tip of trunk (r1448845). 

Three issues:

(1) A few unit tests are failing (on my local machine at least) and I can't readily tell what's wrong. I would really like Ted (or someone else) to look at these failures.

(2) I did NOT go through and find other uses of System.currentTimeMillis to see if they should be converted to Time.currentElapsedTime(). I think someone more knowledgeable should look these over with a fine tooth comb.

(3) Ted's original patch made changes to SessionTrackerImpl.java but those parts of that file that were originally patched don't seem to be present anymore. It looks to me like that code was moved into ExpiryQueue.java. I'd really like some to take a close look at that as well.

Any assistance with these three issues is extremely appreciated!!
                
> Zookeeper should be tolerant of clock adjustments
> -------------------------------------------------
>
>                 Key: ZOOKEEPER-1366
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1366
>             Project: ZooKeeper
>          Issue Type: Bug
>            Reporter: Ted Dunning
>            Assignee: Ted Dunning
>             Fix For: 3.5.0
>
>         Attachments: ZOOKEEPER-1366-3.3.3.patch, ZOOKEEPER-1366.patch, ZOOKEEPER-1366.patch, ZOOKEEPER-1366.patch, ZOOKEEPER-1366.patch, ZOOKEEPER-1366.patch
>
>
> If you want to wreak havoc on a ZK based system just do [date -s "+1hour"] and watch the mayhem as all sessions expire at once.
> This shouldn't happen.  Zookeeper could easily know handle elapsed times as elapsed times rather than as differences between absolute times.  The absolute times are subject to adjustment when the clock is set while a timer is not subject to this problem.  In Java, System.currentTimeMillis() gives you absolute time while System.nanoTime() gives you time based on a timer from an arbitrary epoch.
> I have done this and have been running tests now for some tens of minutes with no failures.  I will set up a test machine to redo the build again on Ubuntu and post a patch here for discussion.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira