diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/AssignRegionHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/AssignRegionHandler.java index 9412edce9097..52c561a50ef0 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/AssignRegionHandler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/AssignRegionHandler.java @@ -92,6 +92,7 @@ private void cleanUpAndReportFailure(IOException error) throws IOException { throw new IOException( "Failed to report failed open to master: " + regionInfo.getRegionNameAsString()); } + rs.finishRegionProcedure(openProcId); } @Override @@ -109,6 +110,7 @@ public void process() throws IOException { // but before returning to master the connection is broken. And when master tries again, we // have already finished the opening. For this case we do not need to call // reportRegionStateTransition any more. + rs.finishRegionProcedure(openProcId); return; } Boolean previous = rs.getRegionsInTransitionInRS().putIfAbsent(encodedNameBytes, Boolean.TRUE); @@ -117,6 +119,7 @@ public void process() throws IOException { // The region is opening and this maybe a retry on the rpc call, it is safe to ignore it. LOG.info("Receiving OPEN for {} which we are already trying to OPEN" + " - ignoring this new request for this region.", regionName); + rs.finishRegionProcedure(openProcId); } else { // The region is closing. This is possible as we will update the region state to CLOSED when // calling reportRegionStateTransition, so the HMaster will think the region is offline,