Quellcode durchsuchen

MAPREDUCE-5877. Inconsistency between JT/TT for tasks taking a long time to launch (Karthik Kambatla via Sandy Ryza)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1@1592928 13f79535-47bb-0310-9956-ffa450edef68
Sanford Ryza vor 11 Jahren
Ursprung
Commit
790f7d8e00

+ 3 - 0
CHANGES.txt

@@ -215,6 +215,9 @@ Release 1.3.0 - unreleased
     in AbstractDelegationTokenSecretManager. (Suresh Srinivas via
     Arpit Agarwal)
 
+    MAPREDUCE-5877. Inconsistency between JT/TT for tasks taking a long time to
+    launch (Karthik Kambatla via Sandy Ryza)
+
 Release 1.2.2 - unreleased
 
   INCOMPATIBLE CHANGES

+ 4 - 6
src/mapred/org/apache/hadoop/mapred/JobTracker.java

@@ -4420,12 +4420,10 @@ public class JobTracker implements MRConstants, InterTrackerProtocol,
     for (TaskStatus report : status.getTaskReports()) {
       report.setTaskTracker(trackerName);
       TaskAttemptID taskId = report.getTaskID();
-      
-      // don't expire the task if it is not unassigned
-      if (report.getRunState() != TaskStatus.State.UNASSIGNED) {
-        expireLaunchingTasks.removeTask(taskId);
-      }
-      
+
+      // Remove task from the list of tasks to be expired.
+      expireLaunchingTasks.removeTask(taskId);
+
       JobInProgress job = getJob(taskId.getJobID());
       if (job == null) {
         // if job is not there in the cleanup list ... add it

+ 1 - 0
src/mapred/org/apache/hadoop/mapred/TaskTracker.java

@@ -2249,6 +2249,7 @@ public class TaskTracker implements MRConstants, TaskUmbilicalProtocol,
     long now = System.currentTimeMillis();
     for (TaskInProgress tip: runningTasks.values()) {
       if (tip.getRunState() == TaskStatus.State.RUNNING ||
+          tip.getRunState() == TaskStatus.State.UNASSIGNED ||
           tip.getRunState() == TaskStatus.State.COMMIT_PENDING ||
           tip.isCleaningup()) {
         // Check the per-job timeout interval for tasks;