Author: cutting Date: Mon Feb 26 12:51:32 2007 New Revision: 512006 URL: http://svn.apache.org/viewvc?view=rev&rev=512006 Log: HADOOP-1036. Improve exception handling in TaskTracker to keep tasks from being lost. Contributed by Arun.
Modified: lucene/hadoop/trunk/CHANGES.txt lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskTracker.java Modified: lucene/hadoop/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=512006&r1=512005&r2=512006 ============================================================================== --- lucene/hadoop/trunk/CHANGES.txt (original) +++ lucene/hadoop/trunk/CHANGES.txt Mon Feb 26 12:51:32 2007 @@ -144,6 +144,9 @@ 42. HADOOP-1027. Fix problems with in-memory merging during shuffle and re-enable this optimization. (Devaraj Das via cutting) +43. HADOOP-1036. Fix exception handling in TaskTracker to keep tasks + from being lost. (Arun C Murthy via cutting) + Release 0.11.2 - 2007-02-16 Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskTracker.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskTracker.java?view=diff&rev=512006&r1=512005&r2=512006 ============================================================================== --- lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskTracker.java (original) +++ lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskTracker.java Mon Feb 26 12:51:32 2007 @@ -860,9 +860,9 @@ } try { localizeJob(tip); - } catch (IOException ie) { + } catch (Throwable e) { String msg = ("Error initializing " + tip.getTask().getTaskId() + - ":\n" + StringUtils.stringifyException(ie)); + ":\n" + StringUtils.stringifyException(e)); LOG.warn(msg); tip.reportDiagnosticInfo(msg); try { @@ -870,6 +870,12 @@ } catch (IOException ie2) { LOG.info("Error cleaning up " + tip.getTask().getTaskId() + ":\n" + StringUtils.stringifyException(ie2)); + } + + // Careful! + // This might not be an 'Exception' - don't handle 'Error' here! + if (e instanceof Error) { + throw ((Error) e); } } }