You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by vi...@apache.org on 2013/08/21 00:53:44 UTC

[1/2] git commit: Integer overflow in OffHeapBitSet when bloomfilter > 2GB patch by Vijay; reviewed by jbellis for CASSANDRA-5903

Updated Branches:
  refs/heads/cassandra-2.0.0 33fda2db6 -> ea7bc1422


Integer overflow in OffHeapBitSet when bloomfilter > 2GB
patch by Vijay; reviewed by jbellis for CASSANDRA-5903

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

Branch: refs/heads/cassandra-2.0.0
Commit: fcc51ea49bb45b5862acdb458a5c9a96880597bc
Parents: dbb55eb
Author: Vijay Parthasarathy <vi...@gmail.com>
Authored: Tue Aug 20 15:30:28 2013 -0700
Committer: Vijay Parthasarathy <vi...@gmail.com>
Committed: Tue Aug 20 15:30:28 2013 -0700

----------------------------------------------------------------------
 .../org/apache/cassandra/utils/obs/OffHeapBitSet.java    | 11 +++++++++--
 src/java/org/apache/cassandra/utils/obs/OpenBitSet.java  |  6 +++---
 2 files changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fcc51ea4/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java b/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java
index 1733a81..b7bb733 100644
--- a/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java
+++ b/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java
@@ -36,8 +36,15 @@ public class OffHeapBitSet implements IBitSet
     public OffHeapBitSet(long numBits)
     {
         // OpenBitSet.bits2words calculation is there for backward compatibility.
-        int byteCount = OpenBitSet.bits2words(numBits) * 8;
-        bytes = RefCountedMemory.allocate(byteCount);
+        long byteCount = OpenBitSet.bits2words(numBits) * 8L;
+        try
+        {
+            bytes = RefCountedMemory.allocate(byteCount);
+        }
+        catch (OutOfMemoryError e)
+        {
+            throw new RuntimeException("Out of native memory occured, You can avoid it by increasing the system ram space or by increasing bloom_filter_fp_chance.");
+        }
         // flush/clear the existing memory.
         clear();
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fcc51ea4/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java b/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java
index 4fce3f8..f92cd45 100644
--- a/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java
+++ b/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java
@@ -65,7 +65,7 @@ public class OpenBitSet implements IBitSet
    */
   public OpenBitSet(long numBits)
   {
-      wlen = bits2words(numBits);
+      wlen = (int) bits2words(numBits);
       int lastPageSize = wlen % PAGE_SIZE;
       int fullPageCount = wlen / PAGE_SIZE;
       pageCount = fullPageCount + (lastPageSize == 0 ? 0 : 1);
@@ -339,8 +339,8 @@ public class OpenBitSet implements IBitSet
   }
 
   /** returns the number of 64 bit words it would take to hold numBits */
-  public static int bits2words(long numBits) {
-   return (int)(((numBits-1)>>>6)+1);
+  public static long bits2words(long numBits) {
+   return (((numBits-1)>>>6)+1);
   }
 
   /** returns true if both sets have the same bits set */


[2/2] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0.0

Posted by vi...@apache.org.
Merge branch 'cassandra-1.2' into cassandra-2.0.0


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

Branch: refs/heads/cassandra-2.0.0
Commit: ea7bc14225387c3a9a985d06a8aba652315a86f1
Parents: 33fda2d fcc51ea
Author: Vijay Parthasarathy <vi...@gmail.com>
Authored: Tue Aug 20 15:53:23 2013 -0700
Committer: Vijay Parthasarathy <vi...@gmail.com>
Committed: Tue Aug 20 15:53:23 2013 -0700

----------------------------------------------------------------------
 .../org/apache/cassandra/utils/obs/OffHeapBitSet.java    | 11 +++++++++--
 src/java/org/apache/cassandra/utils/obs/OpenBitSet.java  |  6 +++---
 2 files changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ea7bc142/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ea7bc142/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java
----------------------------------------------------------------------