Index: CHANGES.txt =================================================================== --- CHANGES.txt (revision 1051377) +++ CHANGES.txt (working copy) @@ -763,6 +763,7 @@ HBASE-3371 Race in TestReplication can make it fail HBASE-3323 OOME in master splitting logs HBASE-3374 Our jruby jar has *GPL jars in it; fix + HBASE-3343 Server not shutting down after losing log lease IMPROVEMENTS Index: src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (revision 1051377) +++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (working copy) @@ -640,7 +640,7 @@ // Interrupt catalog tracker here in case any regions being opened out in // handlers are stuck waiting on meta or root. if (this.catalogTracker != null) this.catalogTracker.stop(); - waitOnAllRegionsToClose(); + if (this.fsOk) waitOnAllRegionsToClose(); // Make sure the proxy is down. if (this.hbaseMaster != null) { Index: src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java (revision 1051377) +++ src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java (working copy) @@ -98,7 +98,7 @@ if (updateMeta(region)) failed = false; } - if (failed) { + if (failed || this.server.isStopped() || this.rsServices.isStopping()) { cleanupFailedOpen(region); return; } @@ -120,6 +120,9 @@ * Caller must cleanup region if this fails. */ private boolean updateMeta(final HRegion r) { + if (this.server.isStopped() || this.rsServices.isStopping()) { + return false; + } // Object we do wait/notify on. Make it boolean. If set, we're done. // Else, wait. final AtomicBoolean signaller = new AtomicBoolean(false); Index: src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java (revision 1051377) +++ src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java (working copy) @@ -427,7 +427,8 @@ Throwable cause = e.getCause(); if (cause != null && cause instanceof EOFException) { t = cause; - } else if (cause.getMessage().contains("Connection reset")) { + } else if (cause != null && cause.getMessage() != null + && cause.getMessage().contains("Connection reset")) { t = cause; } else { throw e;