Author: jbellis
Date: Fri Sep 16 19:11:41 2011
New Revision: 1171737

URL: http://svn.apache.org/viewvc?rev=1171737&view=rev
Log:
Kill server on wrapped OOME such as from FileChannel.map
patch by jbellis; reviewed by slebresne for CASSANDRA-3201

Modified:
    cassandra/branches/cassandra-0.8/CHANGES.txt
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1171737&r1=1171736&r2=1171737&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Sep 16 19:11:41 2011
@@ -1,3 +1,7 @@
+0.8.7
+ * Kill server on wrapped OOME such as from FileChannel.map (CASSANDRA-3201)
+
+
 0.8.6
  * revert CASSANDRA-2388
  * change TokenRange.endpoints back to listen/broadcast address to match

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java?rev=1171737&r1=1171736&r2=1171737&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
 Fri Sep 16 19:11:41 2011
@@ -137,9 +137,11 @@ public abstract class AbstractCassandraD
             {
                 exceptions.incrementAndGet();
                 logger.error("Fatal exception in thread " + t, e);
-                if (e instanceof OutOfMemoryError)
+                for (Throwable e2 = e; e2 != null; e2 = e2.getCause())
                 {
-                    System.exit(100);
+                    // some code, like FileChannel.map, will wrap an 
OutOfMemoryError in another exception
+                    if (e2 instanceof OutOfMemoryError)
+                        System.exit(100);
                 }
             }
         });


Reply via email to