You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2008/12/03 01:03:14 UTC

svn commit: r722690 - in /hadoop/hbase/trunk: CHANGES.txt src/java/org/apache/hadoop/hbase/Leases.java src/java/org/apache/hadoop/hbase/master/ServerManager.java src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java

Author: stack
Date: Tue Dec  2 16:03:13 2008
New Revision: 722690

URL: http://svn.apache.org/viewvc?rev=722690&view=rev
Log:
HBASE-1042 OOME but we don't abort

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/Leases.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=722690&r1=722689&r2=722690&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Tue Dec  2 16:03:13 2008
@@ -88,6 +88,7 @@
    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

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/Leases.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/Leases.java?rev=722690&r1=722689&r2=722690&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/Leases.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/Leases.java Tue Dec  2 16:03:13 2008
@@ -77,12 +77,13 @@
       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;

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java?rev=722690&r1=722689&r2=722690&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/ServerManager.java Tue Dec  2 16:03:13 2008
@@ -758,4 +758,4 @@
   public boolean isDead(String serverName) {
     return deadServers.contains(serverName);
   }
-}
+}
\ No newline at end of file

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=722690&r1=722689&r2=722690&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Tue Dec  2 16:03:13 2008
@@ -608,8 +608,9 @@
   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 @@
    */
   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");