You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jm...@apache.org on 2015/09/29 18:16:38 UTC
[04/10] cassandra git commit: Inspect cause and suppressed exceptions
in JVMStabilityInspector
Inspect cause and suppressed exceptions in JVMStabilityInspector
Patch by Paul Macintosh; reviewed by aweisberg for CASSANDRA-10228
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/39ab9e05
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/39ab9e05
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/39ab9e05
Branch: refs/heads/trunk
Commit: 39ab9e05248ab346482f34c875cff6b9b9b6cad5
Parents: 6039d0e
Author: Paul Macintosh <pm...@goretechs.com>
Authored: Tue Sep 29 12:11:32 2015 -0400
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Tue Sep 29 12:11:32 2015 -0400
----------------------------------------------------------------------
.../org/apache/cassandra/utils/JVMStabilityInspector.java | 4 ++++
.../apache/cassandra/utils/JVMStabilityInspectorTest.java | 9 +++++++++
2 files changed, 13 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/39ab9e05/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java b/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java
index de396bb..2884bc2 100644
--- a/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java
+++ b/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java
@@ -45,6 +45,7 @@ public final class JVMStabilityInspector
/**
* Certain Throwables and Exceptions represent "Die" conditions for the server.
+ * This recursively checks the input Throwable's cause hierarchy until null.
* @param t
* The Throwable to check for server-stop conditions
*/
@@ -65,6 +66,9 @@ public final class JVMStabilityInspector
if (isUnstable)
killer.killCurrentJVM(t);
+
+ if (t.getCause() != null)
+ inspectThrowable(t.getCause());
}
public static void inspectCommitLogThrowable(Throwable t)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/39ab9e05/test/unit/org/apache/cassandra/utils/JVMStabilityInspectorTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/utils/JVMStabilityInspectorTest.java b/test/unit/org/apache/cassandra/utils/JVMStabilityInspectorTest.java
index ff8188f..59a7e48 100644
--- a/test/unit/org/apache/cassandra/utils/JVMStabilityInspectorTest.java
+++ b/test/unit/org/apache/cassandra/utils/JVMStabilityInspectorTest.java
@@ -63,6 +63,15 @@ public class JVMStabilityInspectorTest
killerForTests.reset();
JVMStabilityInspector.inspectCommitLogThrowable(new Throwable());
assertTrue(killerForTests.wasKilled());
+
+ killerForTests.reset();
+ JVMStabilityInspector.inspectThrowable(new Exception(new IOException()));
+ assertFalse(killerForTests.wasKilled());
+
+ killerForTests.reset();
+ JVMStabilityInspector.inspectThrowable(new Exception(new OutOfMemoryError()));
+ assertTrue(killerForTests.wasKilled());
+
}
finally
{