hbase git commit: HBASE-21120 MoveRegionProcedure makes no progress; goes to STUCK
Repository: hbase Updated Branches: refs/heads/branch-2.1 625be5137 -> e826e3f2b HBASE-21120 MoveRegionProcedure makes no progress; goes to STUCK Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e826e3f2 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e826e3f2 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e826e3f2 Branch: refs/heads/branch-2.1 Commit: e826e3f2b85c491c5b57453621cdbaa66c387c41 Parents: 625be51 Author: Michael Stack Authored: Mon Aug 27 14:54:55 2018 -0700 Committer: Michael Stack Committed: Mon Aug 27 14:55:52 2018 -0700 -- .../master/assignment/UnassignProcedure.java| 23 +--- 1 file changed, 6 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/e826e3f2/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java index 46ff48c..4f58a0f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java @@ -28,7 +28,6 @@ import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.exceptions.UnexpectedStateException; import org.apache.hadoop.hbase.favored.FavoredNodesManager; import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException; -import org.apache.hadoop.hbase.master.RegionState; import org.apache.hadoop.hbase.master.RegionState.State; import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode; import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv; @@ -117,7 +116,9 @@ public class UnassignProcedure extends RegionTransitionProcedure { this.destinationServer = destinationServer; this.force = force; this.removeAfterUnassigning = removeAfterUnassigning; -setTransitionState(RegionTransitionState.REGION_TRANSITION_QUEUE); + +// we don't need REGION_TRANSITION_QUEUE, we jump directly to sending the request +setTransitionState(RegionTransitionState.REGION_TRANSITION_DISPATCH); } @Override @@ -178,21 +179,9 @@ public class UnassignProcedure extends RegionTransitionProcedure { @Override protected boolean startTransition(final MasterProcedureEnv env, final RegionStateNode regionNode) { -// Check region is actually unassignable now we have lock on it. If not skirt to end. -// It could have had its status changed on us post construction... perhaps a split removed -// the region we are to unassign (a split and a move happening near-concurrently). -// Don't overcheck. A region is set to have a SPLITTING state if it is the parent and it is -// being split. Regions that are in this RSN state are unassignable. Regions that are SPLIT -// are not. -RegionStates regionStates = env.getAssignmentManager().getRegionStates(); -RegionState rs = regionStates.getRegionState(regionNode.getRegionInfo()); -// Don't try unassigning regions that are closed or split. RSN state could have been set -// after our creation but before we got the region lock. -if (rs.isClosing() || rs.isClosed() || rs.isSplit() || rs.isMerged()) { - LOG.info("NOT unassignable {}, skipping {}", rs, this); - return false; -} -return true; +// nothing to do here. we skip the step in the constructor +// by jumping to REGION_TRANSITION_DISPATCH +throw new UnsupportedOperationException(); } @Override
hbase git commit: HBASE-21120 MoveRegionProcedure makes no progress; goes to STUCK
Repository: hbase Updated Branches: refs/heads/branch-2.0 8fd5e039e -> 07bdeb954 HBASE-21120 MoveRegionProcedure makes no progress; goes to STUCK Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/07bdeb95 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/07bdeb95 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/07bdeb95 Branch: refs/heads/branch-2.0 Commit: 07bdeb95427541c3b0e1f0684d4a4b3811f162a8 Parents: 8fd5e03 Author: Michael Stack Authored: Mon Aug 27 14:54:55 2018 -0700 Committer: Michael Stack Committed: Mon Aug 27 14:54:55 2018 -0700 -- .../master/assignment/UnassignProcedure.java| 23 +--- 1 file changed, 6 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/07bdeb95/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java -- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java index 46ff48c..4f58a0f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java @@ -28,7 +28,6 @@ import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.exceptions.UnexpectedStateException; import org.apache.hadoop.hbase.favored.FavoredNodesManager; import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException; -import org.apache.hadoop.hbase.master.RegionState; import org.apache.hadoop.hbase.master.RegionState.State; import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode; import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv; @@ -117,7 +116,9 @@ public class UnassignProcedure extends RegionTransitionProcedure { this.destinationServer = destinationServer; this.force = force; this.removeAfterUnassigning = removeAfterUnassigning; -setTransitionState(RegionTransitionState.REGION_TRANSITION_QUEUE); + +// we don't need REGION_TRANSITION_QUEUE, we jump directly to sending the request +setTransitionState(RegionTransitionState.REGION_TRANSITION_DISPATCH); } @Override @@ -178,21 +179,9 @@ public class UnassignProcedure extends RegionTransitionProcedure { @Override protected boolean startTransition(final MasterProcedureEnv env, final RegionStateNode regionNode) { -// Check region is actually unassignable now we have lock on it. If not skirt to end. -// It could have had its status changed on us post construction... perhaps a split removed -// the region we are to unassign (a split and a move happening near-concurrently). -// Don't overcheck. A region is set to have a SPLITTING state if it is the parent and it is -// being split. Regions that are in this RSN state are unassignable. Regions that are SPLIT -// are not. -RegionStates regionStates = env.getAssignmentManager().getRegionStates(); -RegionState rs = regionStates.getRegionState(regionNode.getRegionInfo()); -// Don't try unassigning regions that are closed or split. RSN state could have been set -// after our creation but before we got the region lock. -if (rs.isClosing() || rs.isClosed() || rs.isSplit() || rs.isMerged()) { - LOG.info("NOT unassignable {}, skipping {}", rs, this); - return false; -} -return true; +// nothing to do here. we skip the step in the constructor +// by jumping to REGION_TRANSITION_DISPATCH +throw new UnsupportedOperationException(); } @Override