You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jd...@apache.org on 2010/11/08 23:10:39 UTC

svn commit: r1032761 - in /hbase/trunk: CHANGES.txt src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java

Author: jdcryans
Date: Mon Nov  8 22:10:38 2010
New Revision: 1032761

URL: http://svn.apache.org/viewvc?rev=1032761&view=rev
Log:
HBASE-3205  TableRecordReaderImpl.restart NPEs when first next is restarted

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1032761&r1=1032760&r2=1032761&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Mon Nov  8 22:10:38 2010
@@ -657,6 +657,7 @@ Release 0.90.0 - Unreleased
                and it'll hold up regionserver shutdown
    HBASE-3204  Reenable deferred log flush
    HBASE-3195  [rest] Fix TestTransform breakage on Hudson
+   HBASE-3205  TableRecordReaderImpl.restart NPEs when first next is restarted
 
 
   IMPROVEMENTS

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java?rev=1032761&r1=1032760&r2=1032761&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java Mon Nov  8 22:10:38 2010
@@ -132,6 +132,13 @@ public class TableRecordReaderImpl {
       value = this.scanner.next();
     } catch (IOException e) {
       LOG.debug("recovered from " + StringUtils.stringifyException(e));
+      if (lastRow == null) {
+        LOG.warn("We are restarting the first next() invocation," +
+            " if your mapper's restarted a few other times like this" +
+            " then you should consider killing this job and investigate" +
+            " why it's taking so long.");
+        lastRow = scan.getStartRow();
+      }
       restart(lastRow);
       scanner.next();    // skip presumed already mapped row
       value = scanner.next();