[ https://issues.apache.org/jira/browse/ZOOKEEPER-1616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13547791#comment-13547791 ]
Todd Lipcon commented on ZOOKEEPER-1616: ---------------------------------------- True, but you can't get at that without JNI (the JVM just uses CLOCK_MONOTONIC). The non-RAW version is still worlds better than gettimeofday, which is what ZK is using now - the only downside is that it can run a bit fast or slow when NTP is in "catchup" or "slow down" mode - but generally that's only some small percentage off from true time progression. > time calculations should use a monotonic clock > ---------------------------------------------- > > Key: ZOOKEEPER-1616 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1616 > Project: ZooKeeper > Issue Type: Bug > Reporter: Todd Lipcon > > We recently had an issue with ZooKeeper sessions acting strangely due to a > bad NTP setup on a set of hosts. Looking at the code, ZK seems to use > System.currentTimeMillis to measure durations or intervals in many places. > This is bad since that time can move backwards or skip ahead by several > minutes. Instead, it should use System.nanoTime (or a wrapper such as Guava's > Stopwatch class) -- 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