[ https://issues.apache.org/jira/browse/HDFS-4656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13619446#comment-13619446 ]
Aaron T. Myers commented on HDFS-4656: -------------------------------------- Thanks a lot for the review, Todd. The test failure is unrelated and is already tracked by another JIRA. I'm going to commit this momentarily. > DN heartbeat loop can be briefly tight > -------------------------------------- > > Key: HDFS-4656 > URL: https://issues.apache.org/jira/browse/HDFS-4656 > Project: Hadoop HDFS > Issue Type: Bug > Components: datanode > Affects Versions: 2.0.4-alpha > Reporter: Aaron T. Myers > Assignee: Aaron T. Myers > Priority: Minor > Attachments: HDFS-4656.patch > > > The DN hearbeat loop looks roughly like this: > {code} > if (now - timeOfLastHeartbeat > configuredHeartbeatInterval) { > // do heartbeat > } > timeToWait = configuredHeartbeatInterval - (now - timeOfLastHeartbeat) > sleep(timeToWait) > {code} > The trouble is that since we sleep for exactly the heartbeat interval, and > then check to see if we have waited _more_ than that heartbeat interval, we > will very often have waited exactly the heartbeat interval (in millis), and > not more than it. In this case we will skip actually performing the heartbeat > and will calculcate timeToWait as being 0ms. The DN heartbeat loop will then > loop tightly for 1ms. The solution is just to change the "{{>}}" in the code > above to "{{>=}}". -- 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