CASSANDRA-21505: Fix Harry model CAS IF EQ/NEQ handling of meaningless empty bytes - #5010
Open
minal-kyada wants to merge 3 commits into
Open
CASSANDRA-21505: Fix Harry model CAS IF EQ/NEQ handling of meaningless empty bytes#5010minal-kyada wants to merge 3 commits into
minal-kyada wants to merge 3 commits into
Conversation
minal-kyada
force-pushed
the
paxos-lwt-cas-emptyvaluemeaningless-fix
branch
from
August 14, 2026 20:57
bd46d77 to
d3317e2
Compare
dcapwell
reviewed
Aug 14, 2026
minal-kyada
force-pushed
the
paxos-lwt-cas-emptyvaluemeaningless-fix
branch
from
August 20, 2026 19:24
d3317e2 to
d4440e2
Compare
dcapwell
reviewed
Aug 20, 2026
dcapwell
approved these changes
Aug 20, 2026
dcapwell
left a comment
Contributor
There was a problem hiding this comment.
+1 from me. We will need to run the tests many times to make sure nothing unexpected happens
Contributor
Author
Tried running the repeat job for PaxosV2MultiNodeTableWalkTest, and FullAccordInteropMultiNodeTableWalkTest for 1000 times. Spotted 2 failures which are being separately tracked here https://issues.apache.org/jira/browse/CASSANDRA-21505. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Harry model incorrectly normalized empty bytes to null for all code paths in extract0, causing CAS IF EQ/NEQ conditions to mis-predict, the server compares raw bytes so empty bytes stored for meaningless-empty types correctly satisfies an empty bytes condition, but the model predicted otherwise.
Fix adds a preserveEmpty flag to extract/extract0, scoped exclusively to CAS IF EQ/NEQ conditions. All other paths are intentionally left unchanged as they rely on the existing null normalization.
patch by @minal-kyada ; reviewed by @dcapwell @bdeggleston for CASSANDRA-21505
The Cassandra Jira