Blake Eggleston created CASSANDRA-20493:
-------------------------------------------

             Summary: Paxos infinite loop in mixed mode
                 Key: CASSANDRA-20493
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20493
             Project: Apache Cassandra
          Issue Type: Bug
          Components: Feature/Lightweight Transactions
            Reporter: Blake Eggleston
            Assignee: Blake Eggleston


Paxos uses a 'zero' ballot in place of null when it doesn't find a ballot in 
system.paxos. CEP-14 changed the lsb of the zero ballot uuid from 
-9187201950435737472 to 0. It also removed the check added in CASSANDRA-12043, 
since the way it read and filtered ttld paxos data had been improved. 

In mixed mode with a 4.0 or lower replica and a 4.1 and higher paxos 
coordinator, and in the absence of existing paxos metadata for the key being 
queried, the prepare phase will interpret the mismatched ‘zero’ ballots as the 
4.0 and lower nodes having missed the most recent commit and will attempt to 
update them using the 4.1 zero ballot and empty partition update.

In cases where this is the first paxos operation on a key, or the previously 
ttl'd paxos data on disk had been purged, this would just add a retry step as 
it updated the 4.0 and lower hosts with it's zero ballot. On nodes where there 
was ttl'd paxos data though, the ttl'd data on disk would shadow this update 
and the conflicting 'zero' value would cause the prepare phase to get into an 
infinite loop.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to