You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict Elliott Smith (Jira)" <ji...@apache.org> on 2021/11/18 11:05:00 UTC

[jira] [Commented] (CASSANDRA-17162) In the paxos implementation, a delayed proposal might overwrite newer values

    [ https://issues.apache.org/jira/browse/CASSANDRA-17162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17445848#comment-17445848 ] 

Benedict Elliott Smith commented on CASSANDRA-17162:
----------------------------------------------------

Thanks for your patch. Unfortunately these sorts of blog posts are not generalisable, and you need to consider the specific application you're addressing. This particular example is not a bug in Cassandra, due to the use of ballot timestamps when persisting paxos state data. While replica C will nominally accept proposal _a_, the proposal _b_ will not be overwritten by this action, so the proposal _b_ is not forgotten at node C, and therefore no problem arises. Future promises will report _b_ as incomplete, until it commits, and _a_ cannot replace it as a decision, nor can it be accepted at any quorum, so it never proceeds to the commit phase.

This work is all being overhauled in the near future by CEP-14, a patch for which will be posted hopefully this week. This work will anyway begin directly referencing both the in progress, proposal and committed registers when determining if a promise should be issued or a proposal accepted, so that this will be more obviously correct.

> In the paxos implementation, a delayed proposal might overwrite newer values
> ----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-17162
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17162
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Unmesh Joshi
>            Priority: Normal
>         Attachments: paxos-fix.patch
>
>
> I was going through this blog post , which talks about a possible bug in paxos implementation if in-progress ballot is not set while accepting a proposal.
> [https://brooker.co.za/blog/2021/11/16/paxos.html]
> I tried writing a failing test and possible fix. 
> The in_progress_ballot needs to be set when accepting a proposal. The current implementation sets only the proposal_ballot when accepting a proposal.
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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