Index: src/java/org/apache/hadoop/hbase/master/HMaster.java =================================================================== --- src/java/org/apache/hadoop/hbase/master/HMaster.java (revision 956181) +++ src/java/org/apache/hadoop/hbase/master/HMaster.java (working copy) @@ -467,13 +467,11 @@ private boolean processToDoQueue() { RegionServerOperation op = null; - // block until the root region is online - if (regionManager.getRootRegionLocation() != null) { - // We can't process server shutdowns unless the root region is online + // If nothing on the todoQueue, go to the delay queue. + if (toDoQueue.isEmpty()) { op = delayedToDoQueue.poll(); } - - // if there aren't any todo items in the queue, sleep for a bit. + // if there aren't any todo items in the queue, we'll sleep for a bit. if (op == null ) { try { op = toDoQueue.poll(threadWakeFrequency, TimeUnit.MILLISECONDS); @@ -481,13 +479,9 @@ // continue } } - - // at this point, if there's still no todo operation, or we're supposed to - // be closed, return. - if (op == null || closed.get()) { - return true; - } - + if (closed.get()) return true; + // If nothing to do, return. + if (op == null) return false; try { if (LOG.isDebugEnabled()) { LOG.debug("Processing todo: " + op.toString());