Repository: hbase Updated Branches: refs/heads/branch-1 f708d986a -> 0a0aef345
HBASE-17264 Processing RIT with offline state will always fail to open the first time (Allan Yang) Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0a0aef34 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0a0aef34 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0a0aef34 Branch: refs/heads/branch-1 Commit: 0a0aef345a4b4f4deaa66434f749a3abb248846b Parents: f708d98 Author: tedyu <yuzhih...@gmail.com> Authored: Mon Feb 6 19:48:14 2017 -0800 Committer: tedyu <yuzhih...@gmail.com> Committed: Mon Feb 6 19:48:14 2017 -0800 ---------------------------------------------------------------------- .../org/apache/hadoop/hbase/master/AssignmentManager.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/0a0aef34/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 2035f6a..f3c0787 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 @@ -874,7 +874,7 @@ public class AssignmentManager extends ZooKeeperListener { case M_ZK_REGION_OFFLINE: // Insert in RIT and resend to the regionserver - regionStates.updateRegionState(rt, State.PENDING_OPEN); + regionStates.updateRegionState(rt, State.OFFLINE); final RegionState rsOffline = regionStates.getRegionState(regionInfo); this.executorService.submit( new EventHandler(server, EventType.M_MASTER_RECOVERY) { @@ -884,7 +884,7 @@ public class AssignmentManager extends ZooKeeperListener { try { RegionPlan plan = new RegionPlan(regionInfo, null, sn); addPlan(encodedName, plan); - assign(rsOffline, false, false); + assign(rsOffline, true, false); } finally { lock.unlock(); } @@ -1608,6 +1608,7 @@ public class AssignmentManager extends ZooKeeperListener { /** * Use care with forceNewPlan. It could cause double assignment. */ + @VisibleForTesting public void assign(HRegionInfo region, boolean setOfflineInZK, boolean forceNewPlan) { if (isDisabledorDisablingRegionInRIT(region)) { @@ -2085,7 +2086,7 @@ public class AssignmentManager extends ZooKeeperListener { * @param setOfflineInZK * @param forceNewPlan */ - private void assign(RegionState state, + public void assign(RegionState state, boolean setOfflineInZK, final boolean forceNewPlan) { long startTime = EnvironmentEdgeManager.currentTime(); try {