You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2013/05/19 23:21:26 UTC

svn commit: r1484352 - in /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase: regionserver/wal/HLogSplitter.java util/FSHDFSUtils.java

Author: stack
Date: Sun May 19 21:21:26 2013
New Revision: 1484352

URL: http://svn.apache.org/r1484352
Log:
HBASE-8577 TestZooKeeper#testLogSplittingAfterMasterRecoveryDueToZKExpiry failed intermittently

Modified:
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLogSplitter.java
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLogSplitter.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLogSplitter.java?rev=1484352&r1=1484351&r2=1484352&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLogSplitter.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLogSplitter.java Sun May 19 21:21:26 2013
@@ -19,6 +19,7 @@
 package org.apache.hadoop.hbase.regionserver.wal;
 
 import java.io.EOFException;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InterruptedIOException;
 import java.lang.reflect.Constructor;
@@ -836,6 +837,11 @@ public class HLogSplitter {
         }
       }
     } catch (IOException e) {
+      if (e instanceof FileNotFoundException) {
+        // A wal file may not exist anymore. Nothing can be recovered so move on
+        LOG.warn("File " + path + " doesn't exist anymore.", e);
+        return null;
+      }
       if (!skipErrors || e instanceof InterruptedIOException) {
         throw e; // Don't mark the file corrupted if interrupted, or not skipErrors
       }

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java?rev=1484352&r1=1484351&r2=1484352&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java Sun May 19 21:21:26 2013
@@ -76,6 +76,8 @@ public class FSHDFSUtils extends FSUtils
         if (e instanceof LeaseExpiredException && e.getMessage().contains("File does not exist")) {
           // This exception comes out instead of FNFE, fix it
           throw new FileNotFoundException("The given HLog wasn't found at " + p);
+        } else if (e instanceof FileNotFoundException) {
+          throw e;
         }
         LOG.warn("Got IOException on attempt " + nbAttempt + " to recover lease for file " + p +
             ", retrying.", e);