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

Reply via email to