From be513f4bd7721fe91e610cd7c30ee8580b724057 Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Thu, 12 Apr 2018 14:20:18 -0700 Subject: [PATCH] HBASE-20383 [AMv2] AssignmentManager: Failed transition XYZ is not OPEN --- .../hadoop/hbase/master/assignment/AssignmentManager.java | 11 ++++++----- .../master/procedure/AbstractStateMachineTableProcedure.java | 7 ++++--- .../org/apache/hadoop/hbase/regionserver/CompactSplit.java | 4 +--- .../java/org/apache/hadoop/hbase/regionserver/HRegion.java | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java index 6f18d68f51..0a8e36ef54 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java @@ -809,9 +809,12 @@ public class AssignmentManager implements ServerListener { updateRegionTransition(serverName, transition.getTransitionCode(), hri, transition.hasOpenSeqNum() ? transition.getOpenSeqNum() : HConstants.NO_SEQNUM); break; - case READY_TO_SPLIT: case SPLIT: + // This we should not see anymore. No longer implemented. + case READY_TO_SPLIT: + // READY_TO_SPLIT comes from the RegionServer. case SPLIT_REVERTED: + // Should not see SPLIT_REVERTED. Not implemented. assert transition.getRegionInfoCount() == 3 : transition; final RegionInfo parent = ProtobufUtil.toRegionInfo(transition.getRegionInfo(0)); final RegionInfo splitA = ProtobufUtil.toRegionInfo(transition.getRegionInfo(1)); @@ -904,10 +907,8 @@ public class AssignmentManager implements ServerListener { // Submit the Split procedure final byte[] splitKey = hriB.getStartKey(); - if (LOG.isDebugEnabled()) { - LOG.debug("Split request from " + serverName + - ", parent=" + parent + " splitKey=" + Bytes.toStringBinary(splitKey)); - } + LOG.debug("Split request from {}, parent={}, splitKey={}", serverName, parent, + Bytes.toStringBinary(splitKey)); master.getMasterProcedureExecutor().submitProcedure(createSplitProcedure(parent, splitKey)); // If the RS is < 2.0 throw an exception to abort the operation, we are handling the split diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.java index 5815255bb3..99caac930d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.java @@ -186,14 +186,15 @@ public abstract class AbstractStateMachineTableProcedure throw new UnknownRegionException("No RegionState found for " + ri.getEncodedName()); } if (!rs.isOpened()) { - throw new DoNotRetryRegionException(ri.getEncodedName() + " is not OPEN"); + throw new DoNotRetryRegionException(ri.getEncodedName() + " is not OPEN; regionState=" + rs); } if (ri.isSplitParent()) { throw new DoNotRetryRegionException(ri.getEncodedName() + - " is not online (splitParent=true)"); + " is not online (splitParent=true); regionState=" + rs); } if (ri.isSplit()) { - throw new DoNotRetryRegionException(ri.getEncodedName() + " has split=true"); + throw new DoNotRetryRegionException(ri.getEncodedName() + + " has split=true; regionState=" + rs); } if (ri.isOffline()) { // RegionOfflineException is not instance of DNRIOE so wrap it. diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplit.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplit.java index 98df9b167e..0fd05b87a4 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplit.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplit.java @@ -227,10 +227,8 @@ public class CompactSplit implements CompactionRequester, PropagatingConfigurati return; } try { + LOG.debug("Sending split request to Master for {}", r, this); this.splits.execute(new SplitRequest(r, midKey, this.server, user)); - if (LOG.isDebugEnabled()) { - LOG.debug("Splitting " + r + ", " + this); - } } catch (RejectedExecutionException ree) { LOG.info("Could not execute split for " + r, ree); } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index eccb67ec8c..c7d1cd4ad2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -1518,7 +1518,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi // the close flag? if (!abort && worthPreFlushing() && canFlush) { status.setStatus("Pre-flushing region before close"); - LOG.info("Running close preflush of {}" + this.getRegionInfo().getEncodedName()); + LOG.info("Running close preflush on {}", this.getRegionInfo().getEncodedName()); try { internalFlushcache(status); } catch (IOException ioe) { -- 2.16.3