HBASE-1042 OOME but we don't abort
git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@722690 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ab7a3d33f2
commit
d479c750de
|
@ -88,6 +88,7 @@ Release 0.19.0 - Unreleased
|
|||
HBASE-1036 HBASE-1028 broke Thrift
|
||||
HBASE-1037 Some test cases failing on Windows/Cygwin but not UNIX/Linux
|
||||
HBASE-1041 Migration throwing NPE
|
||||
HBASE-1042 OOME but we don't abort
|
||||
|
||||
IMPROVEMENTS
|
||||
HBASE-901 Add a limit to key length, check key and value length on client side
|
||||
|
|
|
@ -77,12 +77,13 @@ public class Leases extends Thread {
|
|||
Lease lease = null;
|
||||
try {
|
||||
lease = leaseQueue.poll(leaseCheckFrequency, TimeUnit.MILLISECONDS);
|
||||
|
||||
} catch (InterruptedException e) {
|
||||
continue;
|
||||
|
||||
} catch (ConcurrentModificationException e) {
|
||||
continue;
|
||||
} catch (Throwable e) {
|
||||
LOG.fatal("Unexpected exception killed leases thread", e);
|
||||
break;
|
||||
}
|
||||
if (lease == null) {
|
||||
continue;
|
||||
|
|
|
@ -758,4 +758,4 @@ class ServerManager implements HConstants {
|
|||
public boolean isDead(String serverName) {
|
||||
return deadServers.contains(serverName);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -608,8 +608,9 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
|
|||
private boolean checkOOME(final Throwable e) {
|
||||
boolean aborting = false;
|
||||
if (e instanceof OutOfMemoryError ||
|
||||
(e.getCause()!= null && e.getCause() instanceof OutOfMemoryError)) {
|
||||
LOG.fatal("OOME, aborting.", e);
|
||||
(e.getCause()!= null && e.getCause() instanceof OutOfMemoryError) ||
|
||||
e.getMessage().contains("java.lang.OutOfMemoryError")) {
|
||||
LOG.fatal("OutOfMemoryError, aborting.", e);
|
||||
abort();
|
||||
aborting = true;
|
||||
}
|
||||
|
@ -1871,7 +1872,8 @@ public class HRegionServer implements HConstants, HRegionInterface, Runnable {
|
|||
*/
|
||||
protected void checkOpen() throws IOException {
|
||||
if (this.stopRequested.get() || this.abortRequested) {
|
||||
throw new IOException("Server not running");
|
||||
throw new IOException("Server not running" +
|
||||
(this.abortRequested? ", aborting": ""));
|
||||
}
|
||||
if (!fsOk) {
|
||||
throw new IOException("File system not available");
|
||||
|
|
Loading…
Reference in New Issue