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)) {