Index: src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (revision 1195765) +++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (working copy) @@ -654,12 +654,10 @@ } else if (abortRequested) { if (this.fsOk) { closeAllRegions(abortRequested); // Don't leave any open file handles - closeWAL(false); } LOG.info("aborting server at: " + this.serverInfo.getServerName()); } else { closeAllRegions(abortRequested); - closeWAL(true); closeAllScanners(); LOG.info("stopping server at: " + this.serverInfo.getServerName()); } @@ -668,7 +666,11 @@ if (this.catalogTracker != null) this.catalogTracker.stop(); if (this.fsOk) waitOnAllRegionsToClose(abortRequested); - + + //fsOk flag may be changed when closing region throws exception. + if (!this.killed && this.fsOk) { + closeWAL(abortRequested ? false : true); + } // Make sure the proxy is down. if (this.hbaseMaster != null) { HBaseRPC.stopProxy(this.hbaseMaster);