You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2016/11/15 01:22:56 UTC

hbase git commit: HBASE-17044 Fix merge failed before creating merged region leaves meta inconsistent

Repository: hbase
Updated Branches:
  refs/heads/master 6c1ceaf11 -> dcf03b32f


HBASE-17044 Fix merge failed before creating merged region leaves meta inconsistent


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

Branch: refs/heads/master
Commit: dcf03b32f48b3b0a21ccea55a8044b88693b29c5
Parents: 6c1ceaf
Author: Andrew Purtell <ap...@apache.org>
Authored: Mon Nov 14 12:28:19 2016 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Mon Nov 14 17:23:27 2016 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/master/AssignmentManager.java   | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/dcf03b32/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
index c8c25f1..3540b19 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
@@ -2700,9 +2700,16 @@ public class AssignmentManager {
         + ", a=" + rs_a + ", b=" + rs_b;
     }
 
+    // Always bring the children back online. Even if they are not offline
+    // there's no harm in making them online again.
     regionOnline(a, serverName);
     regionOnline(b, serverName);
-    regionOffline(hri);
+
+    // Only offline the merging region if it is known to exist.
+    RegionState rs_p = regionStates.getRegionState(hri);
+    if (rs_p != null) {
+      regionOffline(hri);
+    }
 
     if (getTableStateManager().isTableState(hri.getTable(),
         TableState.State.DISABLED, TableState.State.DISABLING)) {