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]