Repository: hbase
Updated Branches:
  refs/heads/branch-1 b6e2bc5ad -> 93d82112f


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/93d82112
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/93d82112
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/93d82112

Branch: refs/heads/branch-1
Commit: 93d82112f00d44c3ded623354f16d3c062cf51e7
Parents: b6e2bc5
Author: Elliott Clark <ecl...@apache.org>
Authored: Thu Jun 23 11:27:44 2016 -0700
Committer: Elliott Clark <ecl...@apache.org>
Committed: Thu Jun 23 12:21:52 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/93d82112/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 3130974..2efc77d 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)) {

Reply via email to