Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Normal
Description
LegacyLayout.LegacyRangeTombstoneList::serialize() has a broken assumption that a range tombstone implies CompositeType. This is incorrect, as you can have non-CompositeType range tombstones created via Thrift in 2.1, and as such wrapping clusteringComparator.subtypes() in a CompositeType is incorrect. On 2.1/2.2 side, when decoding the range tombstone list, RangeTombstoneList::deserialize() will use the raw type to decode start and end bounds, which will end up being confused by the extra 2 bytes in the beginning (short length) plus end of component header in the end.
Attachments
Issue Links
- is part of
-
CASSANDRA-11489 DynamicCompositeType failures during 2.1 to 3.0 upgrade.
- Resolved