You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Vladimir Bukhtoyarov (JIRA)" <ji...@apache.org> on 2018/09/21 10:59:00 UTC

[jira] [Created] (CASSANDRA-14773) Overflow of 32-bit integer during compaction.

Vladimir Bukhtoyarov created CASSANDRA-14773:
------------------------------------------------

             Summary: Overflow of 32-bit integer during compaction.
                 Key: CASSANDRA-14773
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14773
             Project: Cassandra
          Issue Type: Bug
          Components: Compaction
            Reporter: Vladimir Bukhtoyarov
             Fix For: 4.x


In scope of CASSANDRA-13444 the compaction was significantly improved from CPU and memory perspective. Hovewer this improvement introduces the bug in rounding. When rounding the expriration time which is close to  *Cell.MAX_DELETION_TIME*(it is just *Integer.MAX_VALUE*) the math overflow happens, as result point became negative and acts as silent poison for internal structures of StreamingTombstoneHistogramBuilder like *DistanceHolder* and *DataHolder*. Then depending of point intervals:
 * The TombstoneHistogram produces wrong values when interval of points is less then binSize, it is not critical.
 * Compaction crashes with ArrayIndexOutOfBoundsException if amount of point intervals is great then  binSize, this case is very critical.

 

This is pull request [https://github.com/apache/cassandra/pull/273] that reproduces the issue and provides the fix.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org