[ https://issues.apache.org/jira/browse/CASSANDRA-16422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17282516#comment-17282516 ]
Jon Meredith commented on CASSANDRA-16422: ------------------------------------------ Sorry for the delay in response. I wondered about the DEAD_STATES list, but the REMOVING_TOKEN gave me pause. Taking another look at the dead states list, REMOVING_TOKEN - while removenode is happening, StorageService.restoreReplicaCount will be called on some instances, so seems like that would be good to finish before any changes to replication strategy. REMOVED_TOKEN - after removenode has completed STATUS_LEFT - after decommission or assassinate has completed HIBERNATE - either when replacing a host with the same IP address while the node boostraps itself or on a node started with system property cassandra.join_ring=false which waits indefinitely until the JMX call to join the ring. The HIBERNATE case is the more difficult one. It would be possible to start a node with cassandra.join_ring=false, then terminate it and be unable to alter keyspaces until it expired. However it also covers replacing nodes with the same address, although they should not trigger any range movement. I've pushed a commit that expands ignoring unreachable states to include HIBERNATE, REMOVED_TOKEN and STATUS_LEFT. > Unable to ALTER KEYSPACE while decommissioned/assassinated nodes are in gossip > ------------------------------------------------------------------------------ > > Key: CASSANDRA-16422 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16422 > Project: Cassandra > Issue Type: Improvement > Components: Consistency/Bootstrap and Decommission > Reporter: Jon Meredith > Assignee: Jon Meredith > Priority: Normal > Fix For: 4.0-beta > > Time Spent: 20m > Remaining Estimate: 0h > > As part of Transient Replication added in CASSANDRA-14404, {{ALTER KEYSPACE}} > had a validation check added to verify no range movement was taking place. > The check requires all nodes to be in {{NORMAL}} state. When a node is > decommissioned or assassinated then it will remain in gossip for 3 days in > {{LEFT}} state (by default), preventing any keyspace alteration until it has > expired from gossip, even though it is safe to make the change. > The validation condition should be changed to all nodes being in {{NORMAL}} > or {{LEFT}} state instead. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org