Repository: hbase
Updated Branches:
  refs/heads/branch-2 dcd6b6c3f -> d06673cf3


HBASE-20583 SplitLogWorker should handle FileNotFoundException when split a wal


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d06673cf
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d06673cf
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d06673cf

Branch: refs/heads/branch-2
Commit: d06673cf3e7c05d5a49929cb0ec4f10185563345
Parents: dcd6b6c
Author: Guanghao Zhang <zg...@apache.org>
Authored: Wed May 16 07:52:32 2018 +0800
Committer: Guanghao Zhang <zg...@apache.org>
Committed: Fri May 18 14:30:40 2018 +0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/regionserver/SplitLogWorker.java   | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/d06673cf/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
index 0046b67..a1c2030 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
@@ -18,6 +18,7 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InterruptedIOException;
 import java.net.ConnectException;
@@ -105,6 +106,11 @@ public class SplitLogWorker implements Runnable {
           LOG.warn("log splitting of " + filename + " interrupted, resigning", 
iioe);
           return Status.RESIGNED;
         } catch (IOException e) {
+          if (e instanceof FileNotFoundException) {
+            // A wal file may not exist anymore. Nothing can be recovered so 
move on
+            LOG.warn("WAL {} does not exist anymore", filename, e);
+            return Status.DONE;
+          }
           Throwable cause = e.getCause();
           if (e instanceof RetriesExhaustedException && (cause instanceof 
NotServingRegionException
                   || cause instanceof ConnectException

Reply via email to