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 dd...@apache.org on 2007/12/14 20:14:39 UTC
svn commit: r604262 - in /lucene/hadoop/trunk: CHANGES.txt
src/java/org/apache/hadoop/mapred/JobInProgress.java
Author: ddas
Date: Fri Dec 14 11:14:37 2007
New Revision: 604262
URL: http://svn.apache.org/viewvc?rev=604262&view=rev
Log:
HADOOP-2378. Fixes a problem where the last task completion event would get created after the job completes. Contributed by Alejandro Abdelnur
Modified:
lucene/hadoop/trunk/CHANGES.txt
lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java
Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?rev=604262&r1=604261&r2=604262&view=diff
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Fri Dec 14 11:14:37 2007
@@ -251,6 +251,9 @@
HDFS but not the default filesystem. HDFS paths returned by the
listStatus() method are now fully-qualified. (cutting)
+ HADOOP-2378. Fixes a problem where the last task completion event would
+ get created after the job completes. (Alejandro Abdelnur via ddas)
+
IMPROVEMENTS
HADOOP-2160. Remove project-level, non-user documentation from
Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java?rev=604262&r1=604261&r2=604262&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java Fri Dec 14 11:14:37 2007
@@ -401,7 +401,6 @@
TaskCompletionEvent taskEvent = null;
if (state == TaskStatus.State.SUCCEEDED) {
- completedTask(tip, status, metrics);
taskEvent = new TaskCompletionEvent(
taskCompletionEventTracker,
status.getTaskId(),
@@ -452,9 +451,17 @@
}
// Add the 'complete' task i.e. successful/failed
+ // It _is_ safe to add the TaskCompletionEvent.Status.SUCCEEDED
+ // *before* calling TIP.completedTask since:
+ // a. One and only one task of a TIP is declared as a SUCCESS, the
+ // other (speculative tasks) are marked KILLED by the TaskCommitThread
+ // b. TIP.completedTask *does not* throw _any_ exception at all.
if (taskEvent != null) {
this.taskCompletionEvents.add(taskEvent);
taskCompletionEventTracker++;
+ if (state == TaskStatus.State.SUCCEEDED) {
+ completedTask(tip, status, metrics);
+ }
}
}