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 to...@apache.org on 2007/04/21 20:55:39 UTC
svn commit: r531084 - in /lucene/hadoop/trunk: CHANGES.txt
src/java/org/apache/hadoop/mapred/ReduceTask.java
Author: tomwhite
Date: Sat Apr 21 11:55:38 2007
New Revision: 531084
URL: http://svn.apache.org/viewvc?view=rev&rev=531084
Log:
HADOOP-1152. Fix race condition in MapOutputCopier.copyOutput file rename causing possible reduce task hang. Contributed by Tahir Hashmi.
Modified:
lucene/hadoop/trunk/CHANGES.txt
lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/ReduceTask.java
Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=531084&r1=531083&r2=531084
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Sat Apr 21 11:55:38 2007
@@ -234,6 +234,10 @@
70. HADOOP-1275. Fix misspelled job notification property in
hadoop-default.xml. (Alejandro Abdelnur via tomwhite)
+71. HADOOP-1152. Fix race condition in MapOutputCopier.copyOutput file
+ rename causing possible reduce task hang.
+ (Tahir Hashmi via tomwhite)
+
Release 0.12.3 - 2007-04-06
Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/ReduceTask.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/ReduceTask.java?view=diff&rev=531084&r1=531083&r2=531084
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/ReduceTask.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/ReduceTask.java Sat Apr 21 11:55:38 2007
@@ -698,14 +698,17 @@
fs.delete(tmpFilename);
return CopyResult.OBSOLETE;
}
+
+ bytes = fs.getLength(tmpFilename);
// if we can't rename the file, something is broken (and IOException
// will be thrown).
if (!fs.rename(tmpFilename, finalFilename)) {
fs.delete(tmpFilename);
+ bytes = -1;
throw new IOException("failure to rename map output " +
tmpFilename);
}
- bytes = fs.getLength(finalFilename);
+
LOG.info(reduceId + " done copying " + loc.getMapTaskId() +
" output from " + loc.getHost() + ".");
//Create a thread to do merges. Synchronize access/update to