[
https://issues.apache.org/jira/browse/CASSANDRA-13559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16032373#comment-16032373
]
Stefania commented on CASSANDRA-13559:
--------------------------------------
Thank you for committing the ticket [~iamaleksey] and to everybody for the
clarifications.
I've created an upgrade test
[here|https://github.com/riptano/cassandra-dtest/compare/master...stef1927:13559].
To run it export {{JAVA8_HOME}} and then choose one of the following test
combinations:
{code}
upgrade_tests/regression_test.py:TestForRegressionsUpgrade_released_3_0_12_To_released_3_0_13.test_schema_agreement
upgrade_tests/regression_test.py:TestForRegressionsUpgrade_released_3_0_13_To_indev_3_0_x.test_schema_agreement
upgrade_tests/regression_test.py:TestForRegressionsUpgrade_released_3_0_12_To_indev_3_0_x.test_schema_agreement
{code}
The test verifies that the schemas match before and during upgrade, when
creating a table before and during upgrade. 3.0.12 -> current will succeed,
whilst 3.0.12 -> 3.0.13 and 3.0.13 -> current will fail. In the logs we can see
the schema pulls but no other issues (the test checks for a schema match before
creating the table during the upgrade).
I'll leave the test with the custom versions available for a few days, if
people won't to play with it, e.g. by testing with a larger cluster or by
adding more functionality during the upgrade. Before creating a pull request,
we need to uncomment {{@since('3.0.14', max_version='3.99')}} and remove the
lines in
[{{OVERRIDE_MANIFEST}}|https://github.com/riptano/cassandra-dtest/compare/master...stef1927:13559#diff-7de72be82b9e05ef3451358461197944R121].
> Schema version id mismatch while upgrading to 3.0.13
> ----------------------------------------------------
>
> Key: CASSANDRA-13559
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13559
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Jay Zhuang
> Assignee: Jay Zhuang
> Priority: Blocker
> Fix For: 3.0.14, 3.11.0
>
>
> As the order of SchemaKeyspace is changed ([6991556 |
> https://github.com/apache/cassandra/commit/6991556e431a51575744248a4c484270c4f918c9],
> CASSANDRA-12213), the result of function
> [{{calculateSchemaDigest}}|https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/schema/SchemaKeyspace.java#L311]
> 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:
> {noformat}
> 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
> {noformat}
> {noformat}
> 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.
> {noformat}
> Restart the new node will cause:
> {noformat}
> 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)
> {noformat}
> I would suggest to have the older list back for digest calculation and
> release 3.0.14.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]