From 57df517ad1f80447845c8a94d4ae38e8c07a1252 Mon Sep 17 00:00:00 2001 From: Elliott Clark Date: Thu, 23 Jun 2016 11:27:44 -0700 Subject: [PATCH] HBASE-16093 Fix splits failed before creating daughter regions leave meta inconsistent --- .../org/apache/hadoop/hbase/master/AssignmentManager.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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)) { -- 2.8.0-rc2