Index: src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java (revision 1170946) +++ src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java (working copy) @@ -169,13 +169,14 @@ // regions-in-transition timeout period. long period = Math.max(1, assignmentTimeout/ 3); long lastUpdate = now; + boolean tickleOpening = true; while (!signaller.get() && t.isAlive() && !this.server.isStopped() && !this.rsServices.isStopping() && (endTime > now)) { long elapsed = now - lastUpdate; if (elapsed > period) { // Only tickle OPENING if postOpenDeployTasks is taking some time. lastUpdate = now; - tickleOpening("post_open_deploy"); + tickleOpening = tickleOpening("post_open_deploy"); } synchronized (signaller) { try { @@ -204,8 +205,9 @@ } // Was there an exception opening the region? This should trigger on - // InterruptedException too. If so, we failed. - return !Thread.interrupted() && t.getException() == null; + // InterruptedException too. If so, we failed. Even if tickle opening fails + // then it is a failure. + return ((!Thread.interrupted() && t.getException() == null) && tickleOpening); } /**