You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2015/02/19 13:11:16 UTC

[1/3] cassandra git commit: Fix CommitLog.forceRecycleAllSegments() memory access error

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 5da4c4b16 -> 36dc512ad
  refs/heads/trunk 65617aa0a -> 555f89c5a


Fix CommitLog.forceRecycleAllSegments() memory access error

patch by benedict; reviewed by jmckenzie for CASSANDRA-8812


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

Branch: refs/heads/cassandra-2.1
Commit: 36dc512ad4771b8e85c1e095822455012f75e1ee
Parents: 5da4c4b
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Thu Feb 19 12:10:45 2015 +0000
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Thu Feb 19 12:10:45 2015 +0000

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../apache/cassandra/db/commitlog/CommitLogSegment.java | 12 ++++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/36dc512a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7980855..9458627 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.4
+ * Fix CommitLog.forceRecycleAllSegments() memory access error (CASSANDRA-8812)
  * Improve assertions in Memory (CASSANDRA-8792)
  * Fix SSTableRewriter cleanup (CASSANDRA-8802)
  * Introduce SafeMemory for CompressionMetadata.Writer (CASSANDRA-8758)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/36dc512a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
index a70327b..2ea8701 100644
--- a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
+++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
@@ -322,7 +322,7 @@ public class CommitLogSegment
 
             CLibrary.trySkipCache(fd, offset, nextMarker);
             if (close)
-                close();
+                internalClose();
         }
         catch (Exception e) // MappedByteBuffer.force() does not declare IOException but can actually throw it
         {
@@ -409,7 +409,15 @@ public class CommitLogSegment
     /**
      * Close the segment file.
      */
-    void close()
+    synchronized void close()
+    {
+        discardUnusedTail();
+        waitForModifications();
+        lastSyncedOffset = buffer.capacity();
+        internalClose();
+    }
+
+    void internalClose()
     {
         try
         {


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

Posted by be...@apache.org.
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 555f89c5acbebeb982846dcf14fb746a7e65b9f7
Parents: 65617aa 36dc512
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Thu Feb 19 12:11:02 2015 +0000
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Thu Feb 19 12:11:02 2015 +0000

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../apache/cassandra/db/commitlog/CommitLogSegment.java | 12 ++++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/555f89c5/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 61e956f,9458627..46f842b
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,63 -1,5 +1,64 @@@
 +3.0
 + * Add role based access control (CASSANDRA-7653, 8650, 7216)
 + * Avoid accessing partitioner through StorageProxy (CASSANDRA-8244, 8268)
 + * Upgrade Metrics library and remove depricated metrics (CASSANDRA-5657)
 + * Serializing Row cache alternative, fully off heap (CASSANDRA-7438)
 + * Duplicate rows returned when in clause has repeated values (CASSANDRA-6707)
 + * Make CassandraException unchecked, extend RuntimeException (CASSANDRA-8560)
 + * Support direct buffer decompression for reads (CASSANDRA-8464)
 + * DirectByteBuffer compatible LZ4 methods (CASSANDRA-7039)
 + * Group sstables for anticompaction correctly (CASSANDRA-8578)
 + * Add ReadFailureException to native protocol, respond
 +   immediately when replicas encounter errors while handling
 +   a read request (CASSANDRA-7886)
 + * Switch CommitLogSegment from RandomAccessFile to nio (CASSANDRA-8308)
 + * Allow mixing token and partition key restrictions (CASSANDRA-7016)
 + * Support index key/value entries on map collections (CASSANDRA-8473)
 + * Modernize schema tables (CASSANDRA-8261)
 + * Support for user-defined aggregation functions (CASSANDRA-8053)
 + * Fix NPE in SelectStatement with empty IN values (CASSANDRA-8419)
 + * Refactor SelectStatement, return IN results in natural order instead
 +   of IN value list order and ignore duplicate values in partition key IN restrictions (CASSANDRA-7981)
 + * Support UDTs, tuples, and collections in user-defined
 +   functions (CASSANDRA-7563)
 + * Fix aggregate fn results on empty selection, result column name,
 +   and cqlsh parsing (CASSANDRA-8229)
 + * Mark sstables as repaired after full repair (CASSANDRA-7586)
 + * Extend Descriptor to include a format value and refactor reader/writer
 +   APIs (CASSANDRA-7443)
 + * Integrate JMH for microbenchmarks (CASSANDRA-8151)
 + * Keep sstable levels when bootstrapping (CASSANDRA-7460)
 + * Add Sigar library and perform basic OS settings check on startup (CASSANDRA-7838)
 + * Support for aggregation functions (CASSANDRA-4914)
 + * Remove cassandra-cli (CASSANDRA-7920)
 + * Accept dollar quoted strings in CQL (CASSANDRA-7769)
 + * Make assassinate a first class command (CASSANDRA-7935)
 + * Support IN clause on any partition key column (CASSANDRA-7855)
 + * Support IN clause on any clustering column (CASSANDRA-4762)
 + * Improve compaction logging (CASSANDRA-7818)
 + * Remove YamlFileNetworkTopologySnitch (CASSANDRA-7917)
 + * Do anticompaction in groups (CASSANDRA-6851)
 + * Support user-defined functions (CASSANDRA-7395, 7526, 7562, 7740, 7781, 7929,
 +   7924, 7812, 8063, 7813, 7708)
 + * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416)
 + * Move sstable RandomAccessReader to nio2, which allows using the
 +   FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050)
 + * Remove CQL2 (CASSANDRA-5918)
 + * Add Thrift get_multi_slice call (CASSANDRA-6757)
 + * Optimize fetching multiple cells by name (CASSANDRA-6933)
 + * Allow compilation in java 8 (CASSANDRA-7028)
 + * Make incremental repair default (CASSANDRA-7250)
 + * Enable code coverage thru JaCoCo (CASSANDRA-7226)
 + * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369) 
 + * Shorten SSTable path (CASSANDRA-6962)
 + * Use unsafe mutations for most unit tests (CASSANDRA-6969)
 + * Fix race condition during calculation of pending ranges (CASSANDRA-7390)
 + * Fail on very large batch sizes (CASSANDRA-8011)
 + * Improve concurrency of repair (CASSANDRA-6455, 8208)
 +
 +
  2.1.4
+  * Fix CommitLog.forceRecycleAllSegments() memory access error (CASSANDRA-8812)
   * Improve assertions in Memory (CASSANDRA-8792)
   * Fix SSTableRewriter cleanup (CASSANDRA-8802)
   * Introduce SafeMemory for CompressionMetadata.Writer (CASSANDRA-8758)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/555f89c5/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
----------------------------------------------------------------------


[2/3] cassandra git commit: Fix CommitLog.forceRecycleAllSegments() memory access error

Posted by be...@apache.org.
Fix CommitLog.forceRecycleAllSegments() memory access error

patch by benedict; reviewed by jmckenzie for CASSANDRA-8812


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

Branch: refs/heads/trunk
Commit: 36dc512ad4771b8e85c1e095822455012f75e1ee
Parents: 5da4c4b
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Thu Feb 19 12:10:45 2015 +0000
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Thu Feb 19 12:10:45 2015 +0000

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../apache/cassandra/db/commitlog/CommitLogSegment.java | 12 ++++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/36dc512a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7980855..9458627 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.4
+ * Fix CommitLog.forceRecycleAllSegments() memory access error (CASSANDRA-8812)
  * Improve assertions in Memory (CASSANDRA-8792)
  * Fix SSTableRewriter cleanup (CASSANDRA-8802)
  * Introduce SafeMemory for CompressionMetadata.Writer (CASSANDRA-8758)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/36dc512a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
index a70327b..2ea8701 100644
--- a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
+++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
@@ -322,7 +322,7 @@ public class CommitLogSegment
 
             CLibrary.trySkipCache(fd, offset, nextMarker);
             if (close)
-                close();
+                internalClose();
         }
         catch (Exception e) // MappedByteBuffer.force() does not declare IOException but can actually throw it
         {
@@ -409,7 +409,15 @@ public class CommitLogSegment
     /**
      * Close the segment file.
      */
-    void close()
+    synchronized void close()
+    {
+        discardUnusedTail();
+        waitForModifications();
+        lastSyncedOffset = buffer.capacity();
+        internalClose();
+    }
+
+    void internalClose()
     {
         try
         {