diff --git src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index 2afe159..94d292a 100644 --- src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -2990,6 +2990,11 @@ public class HRegionServer implements HRegionInterface, HBaseRPCErrorHandler, public boolean removeFromOnlineRegions(final String encodedName) { HRegion toReturn = null; toReturn = this.onlineRegions.remove(encodedName); + if (toReturn != null && !toReturn.isClosed()) { + LOG.warn("Region " + encodedName + " was removed from online" + + " regions before it is closed, this could cause too many hlogs." + + " Closing = " + toReturn.isClosing()); + } return toReturn != null; } diff --git src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java index 74429a1..62961fd 100644 --- src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java +++ src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java @@ -119,7 +119,8 @@ class LogRoller extends HasThread implements WALActionsListener { */ private void scheduleFlush(final byte [] encodedRegionName) { boolean scheduled = false; - HRegion r = this.services.getFromOnlineRegions(Bytes.toString(encodedRegionName)); + String encodedRegionNameStr = Bytes.toString(encodedRegionName); + HRegion r = this.services.getFromOnlineRegions(encodedRegionNameStr); FlushRequester requester = null; if (r != null) { requester = this.services.getFlushRequester(); @@ -127,6 +128,12 @@ class LogRoller extends HasThread implements WALActionsListener { requester.requestFlush(r); scheduled = true; } + } else { + boolean inTransition = + this.services.getRegionsInTransitionInRS().containsKey( + encodedRegionName); + LOG.warn("Trying to flush region not online: " + encodedRegionNameStr + + " and in transition = " + inTransition); } if (!scheduled) { LOG.warn("Failed to schedule flush of " +