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: [email protected]
For additional commands, e-mail: [email protected]