浏览代码

MAPREDUCE-3419. Don't mark exited TT threads as dead in MiniMRCluster. Contributed by Eli Collins

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security@1203440 13f79535-47bb-0310-9956-ffa450edef68
Eli Collins 13 年之前
父节点
当前提交
4ff947f6da

+ 2 - 0
CHANGES.txt

@@ -68,6 +68,8 @@ Release 0.20.206.0 - unreleased
 
     MAPREDUCE-3394. Add log guard for a debug message in ReduceTask (todd)
 
+    MAPREDUCE-3419. Don't mark exited TT threads as dead in MiniMRCluster (eli)
+
 Release 0.20.205.1 - unreleased
 
   NEW FEATURES

+ 3 - 2
src/test/org/apache/hadoop/mapred/MiniMRCluster.java

@@ -146,6 +146,7 @@ public class MiniMRCluster {
     String[] localDirs;
     volatile boolean isInitialized = false;
     volatile boolean isDead = false;
+    volatile boolean exited = false;
     int numDir;
 
     TaskTrackerRunner(int trackerId, int numDir, String hostname, 
@@ -216,11 +217,11 @@ public class MiniMRCluster {
           tt.run();
         }
       } catch (Throwable e) {
+        isDead = true;
         tt = null;
         LOG.error("task tracker " + trackerId + " crashed", e);
       }
-      // TaskTracker finished execution unexpectedly. So marking it as dead.
-      isDead = true;
+      exited = true;
     }
  
     /**

+ 1 - 1
src/test/org/apache/hadoop/mapred/TestDiskFailures.java

@@ -108,7 +108,7 @@ public class TestDiskFailures extends ClusterMapReduceTestCase {
     waitForDiskHealthCheck();
     assertTrue(
         "Tasktracker is not dead even though all mapred local dirs became bad.",
-        cluster.getTaskTrackerRunner(0).isDead);
+        cluster.getTaskTrackerRunner(0).exited);
     rb = getMetrics(new TaskTrackerMetricsSource(tt));
     assertGauge("failedDirs", 4, rb);
   }