You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2013/09/12 17:30:53 UTC

[jira] [Updated] (CASSANDRA-6012) CAS does not always correctly replay inProgress rounds

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

Sylvain Lebresne updated CASSANDRA-6012:
----------------------------------------

    Attachment: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt

Attaching fix: as far as checking if we should finish an inProgress round, we only need to keep the most recent inProgress commit that has a value. But so as to not break the optimization of CASSANDRA-5667, the patch also keep the most recent inProgress, regardless of whether it has a value or not.

                
> CAS does not always correctly replay inProgress rounds
> ------------------------------------------------------
>
>                 Key: CASSANDRA-6012
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6012
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>         Attachments: 0001-Don-t-skip-paxos-old-round-replay-if-there-is-a-value-.txt
>
>
> Paxos says that on receiving the result of a prepare from a quorum of acceptors, the proposer should propose the value of the higher-number proposal accepted amongst the ones returned by the acceptors, and only propose his own value if no acceptor has send us back a previously accepted value.
> But in PrepareCallback we only keep the more recent inProgress commit regardless of whether is has an update. Which means we could ignore a value already accepted by some acceptors if any of the acceptor send us a more recent ballot than the other acceptor but with no values. The net effect is that we can mistakenly accept two different values for the same round.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira