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 2015/08/18 16:55:45 UTC

[jira] [Commented] (CASSANDRA-9554) Avoid digest mismatch storm on upgade to 3.0

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

Sylvain Lebresne commented on CASSANDRA-9554:
---------------------------------------------

I've rebased the patch on [my branch|https://github.com/pcmanus/cassandra/commits/9554] (CI: [utests|http://cassci.datastax.com/job/pcmanus-9554-testall/1/] and [dtests|http://cassci.datastax.com/job/pcmanus-9554-dtest/1/] - no new failure that I can see). I did manually tested it this time (by adding new log messages on mismatch and manually validating that we had mismatch without the patch on update but not with the patch) and it appears to work as expected.

We should make that automated dtests however and I think we can do that by using tracing since mismatches are sent in traces. That said, I'm not all that familiar with the python driver so I haven't dug into how to read traces yet, and besides, I'm not sure what's our usual way to deal with upgrade tests so they play well with cassci. Maybe some test engineer that is more familiar with all this has a few cycles to write proper automated dtests for this? ([~enigmacurry], [~philipthompson]?)

Anyway, in the meantime, the code is actually ready for review.


> Avoid digest mismatch storm on upgade to 3.0
> --------------------------------------------
>
>                 Key: CASSANDRA-9554
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9554
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Aleksey Yeschenko
>            Assignee: Sylvain Lebresne
>             Fix For: 3.0 beta 2
>
>
> CASSANDRA-8099, in {{UnfilteredRowIterators.digest()}}:
> {code}
>         // TODO: we're not computing digest the same way that old nodes. This
>         // means we'll have digest mismatches during upgrade. We should pass the messaging version of
>         // the node this is for (which might mean computing the digest last, and won't work
>         // for schema (where we announce the version through gossip to everyone))
> {code}
> In a mixed 2.1(2.2) - 3.0 clusters, we need to calculate both digest at the same time and keep both results, and send the appropriate one, depending on receiving nodes' messaging versions. Do that until {{MessagingService.allNodesAtLeast30()}} is true (this is not unprecedented).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)