Author: ddas Date: Fri Dec 14 11:20:10 2007 New Revision: 604268 URL: http://svn.apache.org/viewvc?rev=604268&view=rev Log: Merge -r 604261:604262 from trunk to 0.15 branch. Fixes HADOOP-2378.
Modified: lucene/hadoop/branches/branch-0.15/CHANGES.txt lucene/hadoop/branches/branch-0.15/src/java/org/apache/hadoop/mapred/JobInProgress.java Modified: lucene/hadoop/branches/branch-0.15/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/hadoop/branches/branch-0.15/CHANGES.txt?rev=604268&r1=604267&r2=604268&view=diff ============================================================================== --- lucene/hadoop/branches/branch-0.15/CHANGES.txt (original) +++ lucene/hadoop/branches/branch-0.15/CHANGES.txt Fri Dec 14 11:20:10 2007 @@ -15,6 +15,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/branches/branch-0.15/src/java/org/apache/hadoop/mapred/JobInProgress.java URL: http://svn.apache.org/viewvc/lucene/hadoop/branches/branch-0.15/src/java/org/apache/hadoop/mapred/JobInProgress.java?rev=604268&r1=604267&r2=604268&view=diff ============================================================================== --- lucene/hadoop/branches/branch-0.15/src/java/org/apache/hadoop/mapred/JobInProgress.java (original) +++ lucene/hadoop/branches/branch-0.15/src/java/org/apache/hadoop/mapred/JobInProgress.java Fri Dec 14 11:20:10 2007 @@ -397,7 +397,6 @@ TaskCompletionEvent taskEvent = null; if (state == TaskStatus.State.SUCCEEDED) { - completedTask(tip, status, metrics); taskEvent = new TaskCompletionEvent( taskCompletionEventTracker, status.getTaskId(), @@ -448,9 +447,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); + } } }