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