cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brandon Williams (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-5696) Upgrading to cassandra-1.2 with a dead LEFT state from 1.1 causes problems
Date Wed, 26 Jun 2013 19:21:20 GMT


Brandon Williams updated CASSANDRA-5696:

    Attachment: 5696.txt

There are a few different ways this can be solved, but it's obvious that the most correct
thing to do is correct the order in VV.  This too turns out to be workable though, as long
as you either a) do a full ring restart (to wipe the dead states) or b) do not upgrade within
72 hours of decommissioning a node.  Almost everyone will likely fall into group b) but if
they don't, and don't read the warning in NEWS.txt the possible things that can happen are:

* they receive a harmless NumberFormatException everywhere
* they carry a useless dead state around for a token that doesn't exist for an indeterminate
amount of time (which assassinate could fix)
* the timestamp used for the decom expiration matches a node's token and it will need to be
 shutdown and rebootstrapped

None of these seem world-ending, with the last one being the worst and also least likely to
occur, so here's a patch where we just change the VV order and update NEWS.
> Upgrading to cassandra-1.2 with a dead LEFT state from 1.1 causes problems
> --------------------------------------------------------------------------
>                 Key: CASSANDRA-5696
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.0
>            Reporter: Brandon Williams
>            Assignee: Brandon Williams
>             Fix For: 1.2.7
>         Attachments: 5696.txt
> In 1.1, we wrote LEFT states as LEFT,token,expiretime in gossip.  However in 1.2, VersionValue
serializes this to LEFT,expiretime,tokens and causes the upgrade 1.2 to try and parse it this
way as well, causing it to try to parse the token as an expiretime.
> Another wrinkle to this is assassinate still writes it the old way: LEFT,tokens,expiretime.

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:

View raw message