You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Matt Lehman (Jira)" <ji...@apache.org> on 2021/05/24 23:04:00 UTC

[jira] [Created] (CASSANDRA-16692) Unable to replace node with stale schema

Matt Lehman created CASSANDRA-16692:
---------------------------------------

             Summary: Unable to replace node with stale schema
                 Key: CASSANDRA-16692
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16692
             Project: Cassandra
          Issue Type: Bug
            Reporter: Matt Lehman


 

After CASSANDRA-15158 operators are no longer permitted to replace a terminated node with a stale schema. That is, launching a node to replace NodeA in the following scenario:
{code:java}
NodeA (terminated): schema=V0
NodeB (alive): schema=V1{code}
yields:
{code:java}
ERROR [main] 2021-04-30 19:10:23,410 CassandraDaemon.java:822 - Exception encountered during startup
java.lang.RuntimeException: Didn't receive schemas for all known versions within the timeout
        at org.apache.cassandra.service.StorageService.waitForSchema(StorageService.java:887) ~[nf-cassandra-3.0.24.1.jar:3.0.24.1]
        at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:937) ~[nf-cassandra-3.0.24.1.jar:3.0.24.1]
        at org.apache.cassandra.service.StorageService.initServer(StorageService.java:746) ~[nf-cassandra-3.0.24.1.jar:3.0.24.1]
        at org.apache.cassandra.service.StorageService.initServer(StorageService.java:654) ~[nf-cassandra-3.0.24.1.jar:3.0.24.1]
        at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:374) [nf-cassandra-3.0.24.1.jar:3.0.24.1]
        at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:616) [nf-cassandra-3.0.24.1.jar:3.0.24.1]
        at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:809) [nf-cassandra-3.0.24.1.jar:3.0.24.1]{code}
This can be reproduced like so:
 # Shut down C* on one node in a 3.0 cluster
 # Create a new keyspace and table from one of the other nodes
 # Terminate and replace the node on which C* was shut down.

Waiting for agreement of the nodes not being replaced seems prudent as not doing so could induce data loss, the node being replaced should be exempted from this check.

Reference CASSANDRA-16577 for more context.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org