[
https://issues.apache.org/jira/browse/CASSANDRA-572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12784943#action_12784943
]
Jonathan Ellis commented on CASSANDRA-572:
------------------------------------------
ok, I understand now. for some reason I had a really hard time wrapping my
head around this.
trying to make sure we ignore old applicationstate correctly in all cases seems
like fixing the symptom instead of the real cause.
wouldn't it be simpler to have a single STATE aplicationstate object whose
value would be a json (or whatever) tuple of
[NORMAL|LEAVING|LEFT|BOOTSTRAPPING],ARG+? that way only the most recent one
would be present in the gossiper.
> handle old gossip properly
> --------------------------
>
> Key: CASSANDRA-572
> URL: https://issues.apache.org/jira/browse/CASSANDRA-572
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.5
> Reporter: Jaakko Laine
> Fix For: 0.5
>
> Attachments: 572-handle-old-gossip.patch
>
>
> (1) If a node has been moving in the ring, further bootstraps by other nodes
> will cause errors as they are handling STATE_LEAVING gossip without having
> such member in token metadata.
> (2) When a node bootstraps, it handles all ep states in the order they happen
> to arrive. If the first one to arrive has moved in the past (that is, it has
> STATE_LEAVING in its ep state), getNaturalEndpoint will throw
> ArrayIndexOutOfBounds exception as sortedTokens.size() == 0.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.