[ 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