[ https://issues.apache.org/jira/browse/CASSANDRA-14109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Stupp updated CASSANDRA-14109: ------------------------------------- Resolution: Fixed Status: Resolved (was: Ready to Commit) Thanks a lot for the review! Committed the "upgrade fix" as [e646e5032b68622f7ec1dd0c53137be08baabed9|https://github.com/apache/cassandra/commit/e646e5032b68622f7ec1dd0c53137be08baabed9] to [cassandra-3.11|https://github.com/apache/cassandra/tree/cassandra-3.11] and the code improvements from that as [7a40abb6a5108688fb1b10c375bb751cbb782ea4|https://github.com/apache/cassandra/commit/7a40abb6a5108688fb1b10c375bb751cbb782ea4] to [trunk|https://github.com/apache/cassandra/tree/trunk]. Dtest committed as e67ef2b80a45ae02cc15f4e1a6c57cc68c09b0f8. > Prevent continuous schema exchange between 3.0 and 3.11 nodes > ------------------------------------------------------------- > > Key: CASSANDRA-14109 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14109 > Project: Cassandra > Issue Type: Bug > Components: Coordination, Distributed Metadata > Reporter: Robert Stupp > Assignee: Robert Stupp > Priority: Blocker > Fix For: 3.11.2 > > > Continuous schema migrations can happen during an upgrade from 3.0.x to 3.x > even with versions having the patches for CASSANDRA-13441 and CASSANDRA-13559. > The root cause is the {{cdc}} column, which is included in schema version > calculation in {{RowIterators.digest()}} via > {{SchemaKeyspace.calculateSchemaDigest()}}. > It is possible to make the schema-version calculation between 3.0 and 3.11 > compatible. The idea here is: 3.11 accepts both 3.0 compatible and 3.11 > "native" schema versions. As long as there is one 3.0 node in the cluster, > 3.11 announces a 3.0 compatible schema version (without the {{cdc}} column). > When there are no (more) 3.0 nodes in the cluster, announce the "real" 3.11 > schema version (including the {{cdc}} column). "Announce" means announcing > via Gossip and storing in {{system.local}}. > The change itself is against 3.11 only. A couple of log messages have been > improved and some code regarding schema version checks has been moved into > the {{Schema}} class. Those "side changes" are carried to trunk. Because of > that, the 3.11 and trunk branches are different. The "real" change is in the > 3.11 branch. > {{NEWS.txt}} for 3.11(only) contains upgrade notes. > ||OSS > 3.11|[branch|https://github.com/apache/cassandra/compare/cassandra-3.11...snazy:schema-migration-upgrade-bug-3.11?expand=1] > ||OSS > trunk|[branch|https://github.com/apache/cassandra/compare/trunk...snazy:schema-migration-upgrade-bug-trunk?expand=1] > ||OSS > dtest|[branch|https://github.com/riptano/cassandra-dtest/compare/master...snazy:schema-migration-upgrade-bug?expand=1] > We've verified the functionality of the patch by usual CI tests and extensive > tests using the new upgrade dtest. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org