Viraj Jasani created HDFS-16139: ----------------------------------- Summary: Update BPServiceActor Scheduler's nextBlockReportTime atomically Key: HDFS-16139 URL: https://issues.apache.org/jira/browse/HDFS-16139 Project: Hadoop HDFS Issue Type: Task Reporter: Viraj Jasani Assignee: Viraj Jasani
BPServiceActor#Scheduler's nextBlockReportTime is declared volatile and it can be assigned/read by testing threads (through BPServiceActor#triggerXXX) as well as by actor threads. Hence it is declared volatile but it is still assigned non-atomically e.g {code:java} if (factor != 0) { nextBlockReportTime += factor * blockReportIntervalMs; } else { // If the difference between the present time and the scheduled // time is very less, the factor can be 0, so in that case, we can // ignore that negligible time, spent while sending the BRss and // schedule the next BR after the blockReportInterval. nextBlockReportTime += blockReportIntervalMs; } {code} We should convert it to AtomicLong to take care of concurrent assignments while making sure that it is assigned atomically. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org