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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to