[
https://issues.apache.org/jira/browse/ZOOKEEPER-1366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13194248#comment-13194248
]
Benjamin Reed commented on ZOOKEEPER-1366:
------------------------------------------
for some reason the review board comments didn't come through, but they are on
review board.
i think Login.java should all be based on wall time since i think that is what
kerberos is based on. perhaps eugene can comment on this.
in ZooKeeperServer.java getTime() should return the wall time since that is
used for the mtime.
in GenerateLoad.java when we print the timestamp we probably should be doing
wall time, but since we don't format it, it probably doesn't matter much.
in LoadFromLogTest.java when we do datatree ops, usually the second to the last
parameter is the wall time.
you missed one change to elapsed time in the ReadOnlyModeTest.java
one file that isn't in the patch that we need to fix is ServerCnxn.java. i
think lastResponseTime should have a comment to say that it is the system time
and we can make getLastResponseTime() return the wall time using "return
System.currentMillis() - (Time.currentElapsedTime() - lastResponseTime);"
after crawling through everything, i think it would be nice if Time also had
Time.currentWallTime() that did System.currentMillis(). that way if we saw an
instance of System.currentMillis() in the code it would be a flag that the use
should be reviewed.
oh and we should probably create a jira to fix the C client.
> 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.4.3
>
> Attachments: ZOOKEEPER-1366-3.3.3.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:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira