[
https://issues.apache.org/jira/browse/CASSANDRA-16213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17225015#comment-17225015
]
David Capwell commented on CASSANDRA-16213:
-------------------------------------------
[~paulo] and I chatted in GH and slack, dumping a summary here.
1) shadow round will now return these "empty" states, but these states do NOT
have the status state defined
2) the receiver side will now see these empty states and check a flag to see if
it should handle this case or fall back to previous state
3) if true, then apply just the endpoint state to gossip then call
org.apache.cassandra.service.StorageService#handleStateNormal
4) added logic to reject nodes with specific gossip states from being replaced,
and added flags to alter and/or disable this behavior
5) when gossiping, the "empty" states will be filtered out and not sent around
(to match previous logic).
the empty state is defined as the following
{code}
heartbeat version = -1
applicationState does NOT contain STATUS_WITH_PORT or STATUS
{code}
I have cleaned up the code and made the changes; code is ready to review again.
> Cannot replace_address /X because it doesn't exist in gossip
> ------------------------------------------------------------
>
> Key: CASSANDRA-16213
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16213
> Project: Cassandra
> Issue Type: Bug
> Components: Cluster/Gossip, Cluster/Membership
> Reporter: David Capwell
> Assignee: David Capwell
> Priority: Normal
> Fix For: 4.0-beta
>
>
> We see this exception around nodes crashing and trying to do a host
> replacement; this error appears to be correlated around multiple node
> failures.
> A simplified case to trigger this is the following
> *) Have a N node cluster
> *) Shutdown all N nodes
> *) Bring up N-1 nodes (at least 1 seed, else replace seed)
> *) Host replace the N-1th node -> this will fail with the above
> The reason this happens is that the N-1th node isn’t gossiping anymore, and
> the existing nodes do not have its details in gossip (but have the details in
> the peers table), so the host replacement fails as the node isn’t known in
> gossip.
> This affects all versions (tested 3.0 and trunk, assume 2.2 as well)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]