You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ec...@apache.org on 2016/06/23 19:38:25 UTC

hbase git commit: HBASE-16093 Fix splits failed before creating daughter regions leave meta inconsistent

Repository: hbase
Updated Branches:
  refs/heads/branch-1.3 d500f6fd0 -> 25485d621


HBASE-16093 Fix splits failed before creating daughter regions leave meta inconsistent


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

Branch: refs/heads/branch-1.3
Commit: 25485d621c220e92b0248f3d57a3b3c529a86e47
Parents: d500f6f
Author: Elliott Clark <ec...@apache.org>
Authored: Thu Jun 23 11:27:44 2016 -0700
Committer: Elliott Clark <ec...@apache.org>
Committed: Thu Jun 23 12:22:02 2016 -0700

----------------------------------------------------------------------
 .../hadoop/hbase/master/AssignmentManager.java       | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/25485d62/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 b325f42..739ebff 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
@@ -3758,9 +3758,20 @@ public class AssignmentManager extends ZooKeeperListener {
     if (!org.apache.commons.lang.StringUtils.isEmpty(s)) {
       return s;
     }
+
+    // Always bring the parent back online. Even if it's not offline
+    // There's no harm in making it online again.
     regionOnline(p, sn);
-    regionOffline(a);
-    regionOffline(b);
+
+    // Only offline the region if they are known to exist.
+    RegionState regionStateA = regionStates.getRegionState(a);
+    RegionState regionStateB = regionStates.getRegionState(b);
+    if (regionStateA != null) {
+      regionOffline(a);
+    }
+    if (regionStateB != null) {
+      regionOffline(b);
+    }
 
     if (getTableStateManager().isTableState(p.getTable(),
         ZooKeeperProtos.Table.State.DISABLED, ZooKeeperProtos.Table.State.DISABLING)) {