Disallow offheap_buffers memtable allocation Patch by tjake; reviewed by Michael Shuler for CASSANDRA-11039
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9ce74db4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9ce74db4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9ce74db4 Branch: refs/heads/cassandra-3.X Commit: 9ce74db48b1e7fb8237d9a3bef1ee035594234dd Parents: 304c47f Author: T Jake Luciani <j...@apache.org> Authored: Fri Nov 11 11:37:16 2016 -0500 Committer: T Jake Luciani <j...@apache.org> Committed: Fri Nov 11 14:13:48 2016 -0500 ---------------------------------------------------------------------- CHANGES.txt | 7 ++----- NEWS.txt | 5 +++-- src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 8 +++++--- 3 files changed, 10 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9ce74db4/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 1b2b61f..36615ae 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,11 +1,7 @@ -3.0.11 +3.0.10 * Fix CommitLogSegmentManagerTest (CASSANDRA-12283) * Pass root cause to CorruptBlockException when uncompression failed (CASSANDRA-12889) * Fix partition count log during compaction (CASSANDRA-12184) -Merged from 2.2: -* cqlsh COPY: unprotected pk values before converting them if not using prepared statements (CASSANDRA-12863) - -3.0.10 * Batch with multiple conditional updates for the same partition causes AssertionError (CASSANDRA-12867) * Make AbstractReplicationStrategy extendable from outside its package (CASSANDRA-12788) * Fix CommitLogTest.testDeleteIfNotDirty (CASSANDRA-12854) @@ -37,6 +33,7 @@ Merged from 2.2: * Correct log message for statistics of offheap memtable flush (CASSANDRA-12776) * Explicitly set locale for string validation (CASSANDRA-12541,CASSANDRA-12542,CASSANDRA-12543,CASSANDRA-12545) Merged from 2.2: + * cqlsh COPY: unprotected pk values before converting them if not using prepared statements (CASSANDRA-12863) * Fix Util.spinAssertEquals (CASSANDRA-12283) * Fix potential NPE for compactionstats (CASSANDRA-12462) * Prepare legacy authenticate statement if credentials table initialised after node startup (CASSANDRA-12813) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9ce74db4/NEWS.txt ---------------------------------------------------------------------- diff --git a/NEWS.txt b/NEWS.txt index 8f05c4b..eeb3ab6 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -18,8 +18,9 @@ using the provided 'sstableupgrade' tool. Upgrading --------- - - Nothing specific to this release, but please see previous versions upgrading section, - especially if you are upgrading from 2.2. + - memtable_allocation_type: offheap_buffers is no longer allowed to be specified in the 3.0 series. + This was an oversight that can cause segfaults. Offheap was re-introduced in 3.4 see CASSANDRA-11039 + and CASSANDRA-9472 for details. 3.0.9 ===== http://git-wip-us.apache.org/repos/asf/cassandra/blob/9ce74db4/src/java/org/apache/cassandra/config/DatabaseDescriptor.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index 7b32a34..24b3c00 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -1878,13 +1878,15 @@ public class DatabaseDescriptor case heap_buffers: return new SlabPool(heapLimit, 0, conf.memtable_cleanup_threshold, new ColumnFamilyStore.FlushLargestColumnFamily()); case offheap_buffers: - if (!FileUtils.isCleanerAvailable()) + throw new ConfigurationException("offheap_buffers are not available in 3.0. They will be re-introduced in a future release, see https://issues.apache.org/jira/browse/CASSANDRA-9472 for details"); + + /*if (!FileUtils.isCleanerAvailable()) { throw new IllegalStateException("Could not free direct byte buffer: offheap_buffers is not a safe memtable_allocation_type without this ability, please adjust your config. This feature is only guaranteed to work on an Oracle JVM. Refusing to start."); } - return new SlabPool(heapLimit, offHeapLimit, conf.memtable_cleanup_threshold, new ColumnFamilyStore.FlushLargestColumnFamily()); + return new SlabPool(heapLimit, offHeapLimit, conf.memtable_cleanup_threshold, new ColumnFamilyStore.FlushLargestColumnFamily());*/ case offheap_objects: - throw new ConfigurationException("offheap_objects are not available in 3.0. They should be re-introduced in a future release, see https://issues.apache.org/jira/browse/CASSANDRA-9472 for details"); + throw new ConfigurationException("offheap_objects are not available in 3.0. They will be re-introduced in a future release, see https://issues.apache.org/jira/browse/CASSANDRA-9472 for details"); // return new NativePool(heapLimit, offHeapLimit, conf.memtable_cleanup_threshold, new ColumnFamilyStore.FlushLargestColumnFamily()); default: throw new AssertionError();