Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java (revision 1580679) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java (working copy) @@ -152,13 +152,17 @@ regionInfo.getRegionNameAsString()); return; } - } catch (Throwable t) { - // A throwable here indicates that we couldn't successfully flush the + } catch (KeeperException ke) { + server.abort("Unrecoverable exception while checking state with zk " + + regionInfo.getRegionNameAsString() + ", still finishing close", ke); + throw new RuntimeException(ke); + } catch (IOException ioe) { + // An IOException here indicates that we couldn't successfully flush the // memstore before closing. So, we need to abort the server and allow // the master to split our logs in order to recover the data. server.abort("Unrecoverable exception while closing region " + - regionInfo.getRegionNameAsString() + ", still finishing close", t); - throw new RuntimeException(t); + regionInfo.getRegionNameAsString() + ", still finishing close", ioe); + throw new RuntimeException(ioe); } this.rsServices.removeFromOnlineRegions(region, destination); Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java (revision 1580679) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java (working copy) @@ -1979,7 +1979,7 @@ Path logPath = new Path(args[i]); FSUtils.setFsDefault(conf, logPath); split(conf, logPath); - } catch (Throwable t) { + } catch (IOException t) { t.printStackTrace(System.err); System.exit(-1); } Index: hbase-server/src/main/java/org/apache/hadoop/hbase/util/Merge.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/util/Merge.java (revision 1580679) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/util/Merge.java (working copy) @@ -111,7 +111,7 @@ try { mergeTwoRegions(); return 0; - } catch (Exception e) { + } catch (IOException e) { LOG.fatal("Merge failed", e); return -1;