HBASE-20634 Reopen region while server crash can cause the procedure to be 
stuck; ADDENDUM


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

Branch: refs/heads/HBASE-19064
Commit: d99ba62b1202b291bbcc3b7af0cc8a039e1eb32c
Parents: 03c0f7f
Author: Michael Stack <st...@apache.org>
Authored: Mon Jun 4 12:38:56 2018 -0700
Committer: Michael Stack <st...@apache.org>
Committed: Mon Jun 4 12:39:39 2018 -0700

----------------------------------------------------------------------
 .../hbase/master/replication/RefreshPeerProcedure.java      | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/d99ba62b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.java
index ba9bcdc..10e16e9 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/RefreshPeerProcedure.java
@@ -22,6 +22,7 @@ import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;
 import org.apache.hadoop.hbase.master.procedure.PeerProcedureInterface;
 import 
org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher.ServerOperation;
+import org.apache.hadoop.hbase.procedure2.FailedRemoteDispatchException;
 import org.apache.hadoop.hbase.procedure2.Procedure;
 import org.apache.hadoop.hbase.procedure2.ProcedureEvent;
 import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
@@ -166,10 +167,12 @@ public class RefreshPeerProcedure extends 
Procedure<MasterProcedureEnv>
       // retry
       dispatched = false;
     }
-    if (!env.getRemoteDispatcher().addOperationToNode(targetServer, this)) {
+    try {
+      env.getRemoteDispatcher().addOperationToNode(targetServer, this);
+    } catch (FailedRemoteDispatchException frde) {
       LOG.info("Can not add remote operation for refreshing peer {} for {} to 
{}, " +
-        "this usually because the server is already dead, " +
-        "give up and mark the procedure as complete", peerId, type, 
targetServer);
+        "this is usually because the server is already dead, " +
+        "give up and mark the procedure as complete", peerId, type, 
targetServer, frde);
       return null;
     }
     dispatched = true;

Reply via email to