haiyang1987 commented on a change in pull request #3630:
URL: https://github.com/apache/hadoop/pull/3630#discussion_r746505180
##########
File path:
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/lib/MutableRollingAverages.java
##########
@@ -167,7 +167,7 @@ synchronized void replaceScheduledTask(int windows, long
interval,
}
@Override
- public void snapshot(MetricsRecordBuilder builder, boolean all) {
+ public synchronized void snapshot(MetricsRecordBuilder builder, boolean all)
{
Review comment:
@ferhui @tomscut Thanks your comment.
SpotBugs | module:hadoop-common-project/hadoop-common
-- | --
| Inconsistent synchronization of
org.apache.hadoop.metrics2.lib.MutableRollingAverages.recordValidityMs; locked
66% of time Unsynchronized access at MutableRollingAverages.java:66% of time
Unsynchronized access at MutableRollingAverages.java:[line 182]
So consider add synchronized.
Reference code MutableRatesWithAggregation#snapshot, the method to add the
synchronized
> public class MutableRatesWithAggregation extends MutableMetric {
> @Override
> public synchronized void snapshot(MetricsRecordBuilder rb, boolean all) {
> Iterator<WeakReference<ConcurrentMap<String, ThreadSafeSampleStat>>>
iter =
> weakReferenceQueue.iterator();
> ...
> }
> }
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]