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 cu...@apache.org on 2006/10/11 21:32:48 UTC
svn commit: r462911 - in /lucene/hadoop/trunk: CHANGES.txt
src/java/org/apache/hadoop/mapred/Task.java
Author: cutting
Date: Wed Oct 11 12:32:47 2006
New Revision: 462911
URL: http://svn.apache.org/viewvc?view=rev&rev=462911
Log:
HADOOP-598. Fix tasks to retry when reporting completion. Contributed by Owen.
Modified:
lucene/hadoop/trunk/CHANGES.txt
lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java
Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=462911&r1=462910&r2=462911
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Wed Oct 11 12:32:47 2006
@@ -13,6 +13,9 @@
.999, so that nearly all blocks must be reported before filesystem
modifications are permitted. (Konstantin Shvachko via cutting)
+ 4. HADOOP-598. Fix tasks to retry when reporting completion, so that
+ a single RPC timeout won't fail a task. (omalley via cutting)
+
Release 0.7.0 - 2006-10-06
Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java?view=diff&rev=462911&r1=462910&r2=462911
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java Wed Oct 11 12:32:47 2006
@@ -176,10 +176,26 @@
}
}
- public void done(TaskUmbilicalProtocol umbilical)
- throws IOException {
- umbilical.progress(getTaskId(), // send a final status report
- taskProgress.get(), taskProgress.toString(), phase);
- umbilical.done(getTaskId());
+ public void done(TaskUmbilicalProtocol umbilical) throws IOException {
+ int retries = 10;
+ boolean needProgress = true;
+ while (true) {
+ try {
+ if (needProgress) {
+ // send a final status report
+ umbilical.progress(getTaskId(), taskProgress.get(),
+ taskProgress.toString(), phase);
+ needProgress = false;
+ }
+ umbilical.done(getTaskId());
+ return;
+ } catch (IOException ie) {
+ LOG.warn("Failure signalling completion: " +
+ StringUtils.stringifyException(ie));
+ if (--retries == 0) {
+ throw ie;
+ }
+ }
+ }
}
}