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: common-issues-unsubscr...@hadoop.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to