Index: src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java (revision 1229501) +++ src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java (working copy) @@ -117,6 +117,9 @@ cleanupFailedOpen(region); return; } + + // Add to online regions if all above was successful. + this.rsServices.addToOnlineRegions(region); // Done! Successful region open LOG.debug("Opened " + name); @@ -296,7 +299,6 @@ private void cleanupFailedOpen(final HRegion region) throws IOException { if (region != null) region.close(); - this.rsServices.removeFromOnlineRegions(regionInfo.getEncodedName()); } /** Index: src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (revision 1229501) +++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (working copy) @@ -1365,9 +1365,6 @@ "Region has too many store files"); } - // Add to online regions if all above was successful. - addToOnlineRegions(r); - // Update ZK, ROOT or META if (r.getRegionInfo().isRootRegion()) { RootLocationEditor.setRootLocation(getZooKeeper(), Index: src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java (revision 1229501) +++ src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java (working copy) @@ -301,6 +301,8 @@ throw new IOException("Failed " + bOpener.getName(), bOpener.getException()); } + services.addToOnlineRegions(a); + services.addToOnlineRegions(b); // Leaving here, the splitdir with its dross will be in place but since the // split was successful, just leave it; it'll be cleaned when parent is