Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Normal
Description
A ThreadLocal<MessageDigest> is used to generate the MD5 digest when a replica serves a read command and the isDigestQuery flag is set. The same threadlocal is also used by RandomPartitioner to decorate partition keys. So in a cluster with RP, if tracing is enabled the data digest is corrupted by the partitioner making tokens for the tracing mutations. This causes a digest mismatch on the coordinator, triggering a full data read on every read where CL > 1 (or speculative execution/read repair kick in).
Attachments
Attachments
Issue Links
- links to