You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by al...@apache.org on 2018/11/06 06:48:15 UTC

hbase git commit: HBASE-21421 Do not kill RS if reportOnlineRegions fails

Repository: hbase
Updated Branches:
  refs/heads/branch-2.0 277a67a69 -> d70308160


HBASE-21421 Do not kill RS if reportOnlineRegions fails


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

Branch: refs/heads/branch-2.0
Commit: d703081600016441dcb61c748038a957d30816e6
Parents: 277a67a
Author: Allan Yang <al...@apache.org>
Authored: Tue Nov 6 14:47:42 2018 +0800
Committer: Allan Yang <al...@apache.org>
Committed: Tue Nov 6 14:47:42 2018 +0800

----------------------------------------------------------------------
 .../hadoop/hbase/master/assignment/AssignmentManager.java | 10 +++++-----
 .../hbase/master/assignment/TestRogueRSAssignment.java    |  5 +++++
 2 files changed, 10 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/d7030816/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
index de8281b..04a25c7 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
@@ -990,8 +990,7 @@ public class AssignmentManager implements ServerListener {
     }
   }
 
-  void checkOnlineRegionsReport(final ServerStateNode serverNode, final Set<byte[]> regionNames)
-      throws YouAreDeadException {
+  void checkOnlineRegionsReport(final ServerStateNode serverNode, final Set<byte[]> regionNames) {
     final ServerName serverName = serverNode.getServerName();
     try {
       for (byte[] regionName: regionNames) {
@@ -1030,9 +1029,10 @@ public class AssignmentManager implements ServerListener {
         }
       }
     } catch (UnexpectedStateException e) {
-      LOG.warn("Killing " + serverName + ": " + e.getMessage());
-      killRegionServer(serverName);
-      throw (YouAreDeadException)new YouAreDeadException(e.getMessage()).initCause(e);
+      //See HBASE-21421, we can count on reportRegionStateTransition calls
+      //We only log a warming here. It could be a network lag.
+      LOG.warn("Failed to checkOnlineRegionsReport, maybe due to network lag, "
+          + "if this message continues, be careful of double assign", e);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/d7030816/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.java
index afcf446..c88e583 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.java
@@ -45,6 +45,7 @@ import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -137,7 +138,11 @@ public class TestRogueRSAssignment {
     admin.setBalancerRunning(true, false);
   }
 
+  /**
+   * Ignore this test, see HBASE-21421
+   */
   @Test
+  @Ignore
   public void testReportRSWithWrongRegion() throws Exception {
     final TableName tableName = TableName.valueOf(this.name.getMethodName());