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

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: https://issues.apache.org/jira/browse/CASSANDRA-5696
>             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: http://www.atlassian.com/software/jira

Reply via email to