You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2013/05/22 17:33:26 UTC

[1/3] git commit: Move System.exit on OOM into a separate thread patch by jbellis; reviewed by marcuse for CASSANDRA-5273

Updated Branches:
  refs/heads/cassandra-1.2 de2ee6e28 -> bf28e8d4b
  refs/heads/trunk bac41da61 -> 44827b4a8


Move System.exit on OOM into a separate thread
patch by jbellis; reviewed by marcuse for CASSANDRA-5273


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bf28e8d4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bf28e8d4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bf28e8d4

Branch: refs/heads/cassandra-1.2
Commit: bf28e8d4b84afd5f9821ad965274768b8d4ca179
Parents: de2ee6e
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed May 22 10:32:36 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed May 22 10:33:09 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../apache/cassandra/service/CassandraDaemon.java  |   12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf28e8d4/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 3902dec..21faf5a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.6
+ * Move System.exit on OOM into a separate thread (CASSANDRA-5273)
  * Write row markers when serializing schema (CASSANDRA-5572)
  * Check only SSTables for the requested range when streaming (CASSANDRA-5569)
  * Improve batchlog replay behavior and hint ttl handling (CASSANDRA-5314)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf28e8d4/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index 40c453d..343d497 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -58,6 +58,16 @@ public class CassandraDaemon
         initLog4j();
     }
 
+    // Have a dedicated thread to call exit to avoid deadlock in the case where the thread that wants to invoke exit
+    // belongs to an executor that our shutdown hook wants to wait to exit gracefully. See CASSANDRA-5273.
+    private static final Thread exitThread = new Thread(new Runnable()
+    {
+        public void run()
+        {
+            System.exit(100);
+        }
+    }, "Exit invoker");
+
     /**
      * Initialize logging in such a way that it checks for config changes every 10 seconds.
      */
@@ -178,7 +188,7 @@ public class CassandraDaemon
                 {
                     // some code, like FileChannel.map, will wrap an OutOfMemoryError in another exception
                     if (e2 instanceof OutOfMemoryError)
-                        System.exit(100);
+                        exitThread.start();
 
                     if (e2 instanceof FSError)
                     {


[3/3] git commit: Merge branch 'cassandra-1.2' into trunk

Posted by jb...@apache.org.
Merge branch 'cassandra-1.2' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/44827b4a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/44827b4a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/44827b4a

Branch: refs/heads/trunk
Commit: 44827b4a824611cdbcd152b6240ccd688ac2ba82
Parents: bac41da bf28e8d
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed May 22 10:33:20 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed May 22 10:33:20 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../apache/cassandra/service/CassandraDaemon.java  |   12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/44827b4a/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 570c867,21faf5a..1ad2f25
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,57 -1,5 +1,58 @@@
 +2.0
 + * use nanotime consistently for node-local timeouts (CASSANDRA-5581)
 + * Avoid unnecessary second pass on name-based queries (CASSANDRA-5577)
 + * Experimental triggers (CASSANDRA-1311)
 + * JEMalloc support for off-heap allocation (CASSANDRA-3997)
 + * Single-pass compaction (CASSANDRA-4180)
 + * Removed token range bisection (CASSANDRA-5518)
 + * Removed compatibility with pre-1.2.5 sstables and network messages
 +   (CASSANDRA-5511)
 + * removed PBSPredictor (CASSANDRA-5455)
 + * CAS support (CASSANDRA-5062, 5441, 5443)
 + * Leveled compaction performs size-tiered compactions in L0 
 +   (CASSANDRA-5371, 5439)
 + * Add yaml network topology snitch for mixed ec2/other envs (CASSANDRA-5339)
 + * Log when a node is down longer than the hint window (CASSANDRA-4554)
 + * Optimize tombstone creation for ExpiringColumns (CASSANDRA-4917)
 + * Improve LeveledScanner work estimation (CASSANDRA-5250, 5407)
 + * Replace compaction lock with runWithCompactionsDisabled (CASSANDRA-3430)
 + * Change Message IDs to ints (CASSANDRA-5307)
 + * Move sstable level information into the Stats component, removing the
 +   need for a separate Manifest file (CASSANDRA-4872)
 + * avoid serializing to byte[] on commitlog append (CASSANDRA-5199)
 + * make index_interval configurable per columnfamily (CASSANDRA-3961)
 + * add default_time_to_live (CASSANDRA-3974)
 + * add memtable_flush_period_in_ms (CASSANDRA-4237)
 + * replace supercolumns internally by composites (CASSANDRA-3237, 5123)
 + * upgrade thrift to 0.9.0 (CASSANDRA-3719)
 + * drop unnecessary keyspace parameter from user-defined compaction API 
 +   (CASSANDRA-5139)
 + * more robust solution to incomplete compactions + counters (CASSANDRA-5151)
 + * Change order of directory searching for c*.in.sh (CASSANDRA-3983)
 + * Add tool to reset SSTable compaction level for LCS (CASSANDRA-5271)
 + * Allow custom configuration loader (CASSANDRA-5045)
 + * Remove memory emergency pressure valve logic (CASSANDRA-3534)
 + * Reduce request latency with eager retry (CASSANDRA-4705)
 + * cqlsh: Remove ASSUME command (CASSANDRA-5331)
 + * Rebuild BF when loading sstables if bloom_filter_fp_chance
 +   has changed since compaction (CASSANDRA-5015)
 + * remove row-level bloom filters (CASSANDRA-4885)
 + * Change Kernel Page Cache skipping into row preheating (disabled by default)
 +   (CASSANDRA-4937)
 + * Improve repair by deciding on a gcBefore before sending
 +   out TreeRequests (CASSANDRA-4932)
 + * Add an official way to disable compactions (CASSANDRA-5074)
 + * Reenable ALTER TABLE DROP with new semantics (CASSANDRA-3919)
 + * Add binary protocol versioning (CASSANDRA-5436)
 + * Swap THshaServer for TThreadedSelectorServer (CASSANDRA-5530)
 + * Add alias support to SELECT statement (CASSANDRA-5075)
 + * Don't create empty RowMutations in CommitLogReplayer (CASSANDRA-5541)
 + * Use range tombstones when dropping cfs/columns from schema (CASSANDRA-5579)
 + * cqlsh: drop CQL2/CQL3-beta support (CASSANDRA-5585)
 +
 +
  1.2.6
+  * Move System.exit on OOM into a separate thread (CASSANDRA-5273)
   * Write row markers when serializing schema (CASSANDRA-5572)
   * Check only SSTables for the requested range when streaming (CASSANDRA-5569)
   * Improve batchlog replay behavior and hint ttl handling (CASSANDRA-5314)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/44827b4a/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------


[2/3] git commit: Move System.exit on OOM into a separate thread patch by jbellis; reviewed by marcuse for CASSANDRA-5273

Posted by jb...@apache.org.
Move System.exit on OOM into a separate thread
patch by jbellis; reviewed by marcuse for CASSANDRA-5273


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bf28e8d4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bf28e8d4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bf28e8d4

Branch: refs/heads/trunk
Commit: bf28e8d4b84afd5f9821ad965274768b8d4ca179
Parents: de2ee6e
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed May 22 10:32:36 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed May 22 10:33:09 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../apache/cassandra/service/CassandraDaemon.java  |   12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf28e8d4/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 3902dec..21faf5a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.6
+ * Move System.exit on OOM into a separate thread (CASSANDRA-5273)
  * Write row markers when serializing schema (CASSANDRA-5572)
  * Check only SSTables for the requested range when streaming (CASSANDRA-5569)
  * Improve batchlog replay behavior and hint ttl handling (CASSANDRA-5314)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf28e8d4/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index 40c453d..343d497 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -58,6 +58,16 @@ public class CassandraDaemon
         initLog4j();
     }
 
+    // Have a dedicated thread to call exit to avoid deadlock in the case where the thread that wants to invoke exit
+    // belongs to an executor that our shutdown hook wants to wait to exit gracefully. See CASSANDRA-5273.
+    private static final Thread exitThread = new Thread(new Runnable()
+    {
+        public void run()
+        {
+            System.exit(100);
+        }
+    }, "Exit invoker");
+
     /**
      * Initialize logging in such a way that it checks for config changes every 10 seconds.
      */
@@ -178,7 +188,7 @@ public class CassandraDaemon
                 {
                     // some code, like FileChannel.map, will wrap an OutOfMemoryError in another exception
                     if (e2 instanceof OutOfMemoryError)
-                        System.exit(100);
+                        exitThread.start();
 
                     if (e2 instanceof FSError)
                     {