You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ju...@apache.org on 2015/02/05 03:58:46 UTC

hadoop git commit: HADOOP-10062. race condition in MetricsSystemImpl#publishMetricsNow that causes incorrect results. (Contributed by Sangjin Lee)

Repository: hadoop
Updated Branches:
  refs/heads/trunk 9112f093c -> 0b567f424


HADOOP-10062. race condition in MetricsSystemImpl#publishMetricsNow that causes incorrect results.  (Contributed by Sangjin Lee)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0b567f42
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0b567f42
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0b567f42

Branch: refs/heads/trunk
Commit: 0b567f424673b5cea1c3bc23b2bd268ef6b7625f
Parents: 9112f09
Author: Junping Du <ju...@apache.org>
Authored: Wed Feb 4 19:10:52 2015 -0800
Committer: Junping Du <ju...@apache.org>
Committed: Wed Feb 4 19:10:52 2015 -0800

----------------------------------------------------------------------
 hadoop-common-project/hadoop-common/CHANGES.txt                   | 3 +++
 .../java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java   | 2 +-
 .../org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java    | 2 +-
 3 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/0b567f42/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index c229453..9d6989b 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -849,6 +849,9 @@ Release 2.7.0 - UNRELEASED
     HADOOP-11549. flaky test detection tool failed to handle special control
     characters in test result. (Yongjun Zhang via aajisaka)
 
+    HADOOP-10062. race condition in MetricsSystemImpl#publishMetricsNow that 
+    causes incorrect results. (Sangjin Lee via junping_du)
+
 Release 2.6.1 - UNRELEASED
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/0b567f42/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
index baa75ab..32b00f3 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
@@ -384,7 +384,7 @@ public class MetricsSystemImpl extends MetricsSystem implements MetricsSource {
    * Requests an immediate publish of all metrics from sources to sinks.
    */
   @Override
-  public void publishMetricsNow() {
+  public synchronized void publishMetricsNow() {
     if (sinks.size() > 0) {
       publishMetrics(sampleMetrics(), true);
     }    

http://git-wip-us.apache.org/repos/asf/hadoop/blob/0b567f42/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
index d59e80b..4c2ebc8 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
@@ -190,7 +190,7 @@ public class TestMetricsSystemImpl {
       threads[i] = new Thread(new Runnable() {
         private boolean safeAwait(int mySource, CyclicBarrier barrier) {
           try {
-            barrier1.await(2, TimeUnit.SECONDS);
+            barrier.await(2, TimeUnit.SECONDS);
           } catch (InterruptedException e) {
             results[mySource] = "Interrupted";
             return false;