Details
-
Bug
-
Status: Resolved
-
Urgent
-
Resolution: Fixed
-
None
-
Critical
Description
As the order of SchemaKeyspace is changed (6991556 , CASSANDRA-12213), the result of function calculateSchemaDigest is also changed for the same schema. Which causes schema mismatch while upgrading 3.0.x -> 3.0.13.
It could cause cassandra fail to start because Unknown CF exception. And streaming will fail:
ERROR [main] 2017-05-26 18:58:57,572 CassandraDaemon.java:709 - Exception encountered during startup java.lang.IllegalArgumentException: Unknown CF 83c8eae0-3a65-11e7-9a27-e17fd11571e3
WARN [MessagingService-Incoming-/IP] 2017-05-26 19:27:11,523 IncomingTcpConnection.java:101 - UnknownColumnFamilyException reading from socket; closing org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find table for cfId 922b7940-3a65-11e7-adf3-a3ff55d9bcf1. If a table was just created, this is likely due to the schema not being fully propagated. Please wait for schema agreement on table creation.
Restart the new node will cause:
Exception (java.lang.NoSuchFieldError) encountered during startup: ALL java.lang.NoSuchFieldError: ALL at org.apache.cassandra.service.ClientState.<clinit>(ClientState.java:67) at org.apache.cassandra.cql3.QueryProcessor$InternalStateInstance.<init>(QueryProcessor.java:155) at org.apache.cassandra.cql3.QueryProcessor$InternalStateInstance.<clinit>(QueryProcessor.java:149) at org.apache.cassandra.cql3.QueryProcessor.internalQueryState(QueryProcessor.java:163) at org.apache.cassandra.cql3.QueryProcessor.prepareInternal(QueryProcessor.java:286) at org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:294) at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:900) at org.apache.cassandra.service.StartupChecks$9.execute(StartupChecks.java:354) at org.apache.cassandra.service.StartupChecks.verify(StartupChecks.java:110) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:179) at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:569) at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:697)
I would suggest to have the older list back for digest calculation and release 3.0.14.