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

Chris Seawood updated ZOOKEEPER-1366:
-------------------------------------

    Attachment: zookeeper-3.4.5-ZK1366-SC01.patch

This issue has hit critical mass for us as well and we need the fix applied 
against a current stable release tree. I took the patch from 2013-02-22-10:31 
and applied it to the 3.4.5 tree.  

I looked at the remaining System.currentTimeMillis() calls and fixed a couple 
of instances.  The remaining calls are made in: 
* the MergedLogSource() console output
* the LeaderElectionSupportTest.java test which uses the value as part of a 
unique identifier
* the TimeTest.java test which makes sure that Time.currentElapsedTime() works 
as advertised.

So far, I've only done the simple [date -s "+1hour"] test and that passed. I'll 
let you know if we hit any other issues.
                
> 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, ZOOKEEPER-1366.patch, ZOOKEEPER-1366.patch, 
> zookeeper-3.4.5-ZK1366-SC01.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

Reply via email to