Index: hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java (revision 1380945) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java (working copy) @@ -3369,29 +3369,34 @@ out.flush(); } - // check and fix table integrity, region consistency. - int code = onlineHbck(); - setRetCode(code); - // If we have changed the HBase state it is better to run hbck again - // to see if we haven't broken something else in the process. - // We run it only once more because otherwise we can easily fall into - // an infinite loop. - if (shouldRerun()) { - try { - LOG.info("Sleeping " + sleepBeforeRerun + "ms before re-checking after fix..."); - Thread.sleep(sleepBeforeRerun); - } catch (InterruptedException ie) { - return this; + try{ + // check and fix table integrity, region consistency. + int code = onlineHbck(); + setRetCode(code); + + // If we have changed the HBase state it is better to run hbck again + // to see if we haven't broken something else in the process. + // We run it only once more because otherwise we can easily fall into + // an infinite loop. + if (shouldRerun()) { + try { + LOG.info("Sleeping " + sleepBeforeRerun + "ms before re-checking after fix..."); + Thread.sleep(sleepBeforeRerun); + } catch (InterruptedException ie) { + return this; + } + // Just report + setFixAssignments(false); + setFixMeta(false); + setFixHdfsHoles(false); + setFixHdfsOverlaps(false); + setFixVersionFile(false); + errors.resetErrors(); + code = onlineHbck(); + setRetCode(code); } - // Just report - setFixAssignments(false); - setFixMeta(false); - setFixHdfsHoles(false); - setFixHdfsOverlaps(false); - setFixVersionFile(false); - errors.resetErrors(); - code = onlineHbck(); - setRetCode(code); + } finally { + executor.shutdown(); } return this; }