[ 
https://issues.apache.org/jira/browse/CASSANDRA-15462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-15462:
----------------------------------------
     Bug Category: Parent values: Correctness(12982)
       Complexity: Normal
    Discovered By: Code Inspection
    Fix Version/s: 4.0-beta
         Severity: Normal
           Status: Open  (was: Triage Needed)

The linked branch is based on the fix for CASSANDRA-15461. We can't actually 
purge the eligible tombstones when generating the repaired data digest, as this 
happens before the repaired and unrepaired data is merged. Instead, we supply a 
{{PurgeFunction}} to the digest generating function, which uses it to test 
which tombstones are going to be purged from the final result, excluding them 
from the digest if necessary. The main complication is that we don't know 
whether a partition will be completely purged until after it has been 
processed. o work around this, we create an overall digest for the entire 
resultset and a temporary digest of the current partition, only adding the 
temporary digest to the overall if the partition is not fully purged.

||branch||CI||

|[15462-4.0|https://github.com/beobal/cassandra/tree/15462-4.0]|[circle|https://circleci.com/gh/beobal/workflows/cassandra/tree/15462-4.0]|

> Purgable tombstones can cause false positives in repaired data tracking
> -----------------------------------------------------------------------
>
>                 Key: CASSANDRA-15462
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15462
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Observability/Metrics
>            Reporter: Sam Tunnicliffe
>            Assignee: Sam Tunnicliffe
>            Priority: Normal
>             Fix For: 4.0-beta
>
>
> Calculating the repaired data digest on the read path (for the purposes of 
> detecting mismatches in the repaired data across replicas) is done before 
> purging any tombstones due to gcgs or last repaired time. This causes false 
> positives when repaired sstables include GC-able tombstones on some replicas 
> but not others. 
> Validation compactions do purge tombstones so it's perfectly possible for 
> sstables to mismatch in this way without causing any streaming during repair.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to