Author: ddas
Date: Thu Feb 26 06:25:11 2009
New Revision: 748034
URL: http://svn.apache.org/viewvc?rev=748034&view=rev
Log:
HADOOP-5280. Committing this to the 0.19 branch.
Modified:
hadoop/core/branches/branch-0.19/CHANGES.txt
hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskInProgress.java
Modified: hadoop/core/branches/branch-0.19/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.19/CHANGES.txt?rev=748034&r1=748033&r2=748034&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.19/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.19/CHANGES.txt Thu Feb 26 06:25:11 2009
@@ -10,6 +10,9 @@
HADOOP-5269. Fixes a problem to do with tasktracker holding on to
FAILED_UNCLEAN
or KILLED_UNCLEAN tasks forever. (Amareshwari Sriramadasu via ddas)
+ HADOOP-5280. Adds a check to prevent a task state transition from FAILED to
+ any of UNASSIGNED, RUNNING, COMMIT_PENDING or SUCCEEDED. (ddas)
+
Release 0.19.1 - 2009-02-23
INCOMPATIBLE CHANGES
Modified:
hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskInProgress.java
URL:
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskInProgress.java?rev=748034&r1=748033&r2=748034&view=diff
==============================================================================
---
hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskInProgress.java
(original)
+++
hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/TaskInProgress.java
Thu Feb 26 06:25:11 2009
@@ -518,6 +518,18 @@
oldState == TaskStatus.State.COMMIT_PENDING)) {
return false;
}
+
+ //This is to handle the case of the JobTracker timing out a task
+ //due to launch delay, but the TT comes back with one of the
+ //states mentioned in the newState
+ if (oldState == TaskStatus.State.FAILED &&
+ (newState == TaskStatus.State.UNASSIGNED ||
+ newState == TaskStatus.State.RUNNING ||
+ newState == TaskStatus.State.COMMIT_PENDING ||
+ newState == TaskStatus.State.SUCCEEDED)) {
+ tasksToKill.put(taskid, true);
+ return false;
+ }
changed = oldState != newState;
}