Details
-
Bug
-
Status: Resolved
-
Urgent
-
Resolution: Fixed
-
None
-
Correctness - API / Semantic Implementation
-
Critical
-
Challenging
-
User Report
Description
There are a couple of places in the code base that do not respect that j.u.HashMap + related classes are not thread safe and some parts rely on internals of the implementation of HM, which can change.
We have observed failures like NullPointerException and ConcurrentModificationException as well as wrong behavior.
Affected areas in the code base:
- SizeTieredCompactionStrategy
- DateTieredCompactionStrategy
- TimeWindowCompactionStrategy
- TokenMetadata.Topology
- TypeParser
- streaming / concurrent access to LifecycleTransaction (handled in
CASSANDRA-14554)
While the patches for the compaction strategies + TypeParser are pretty straight forward, the patch for TokenMetadata.Topology requires it to be made immutable.