[ https://issues.apache.org/jira/browse/CASSANDRA-14897?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ariel Weisberg updated CASSANDRA-14897: --------------------------------------- Description: In CASSANDRA-14841 I stopped it from writing to those tables so it wouldn't generate any errors. Aleksey pointed out I could write just the old columns. If a user manually adds the new columns to the old version nodes before upgrade they will be able to query this information across the cluster. This is a better situation then making it completely impossible for people to run repairs or perform tracing in mixed version clusters. This would avoid breaking repair and tracing in mixed version clusters. The missing columns can be added by following [these instructions|https://issues.apache.org/jira/browse/CASSANDRA-14841?focusedCommentId=16684959&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16684959] For 3.0.15 and 3.11.1 and older versions: {noformat} cqlsh> ALTER TABLE system_distributed.repair_history ADD coordinator_port int; cqlsh> ALTER TABLE system_distributed.repair_history ADD participants_v2 set<text>; {noformat} For 3.0.16 and 3.11.2 and newer: {noformat} cqlsh> INSERT INTO system_schema.columns (keyspace_name , table_name , column_name , clustering_order , column_name_bytes , kind , position , type ) VALUES ( 'system_distributed', 'repair_history', 'coordinator_port', 'none', 0x636f6f7264696e61746f725f706f7274, 'regular', -1, 'int'); cqlsh> INSERT INTO system_schema.columns (keyspace_name , table_name , column_name , clustering_order , column_name_bytes , kind , position , type ) VALUES ( 'system_distributed', 'repair_history', 'participants_v2', 'none', 0x7061727469636970616e74735f7632, 'regular', -1, 'set<text>'); cqlsh> exit $ nodetool reloadlocalschema {noformat} Remember that the INSERT's and nodetool reloadschema must be done on the same node. was: In CASSANDRA-14841 I stopped it from writing to those tables so it wouldn't generate any errors. Aleksey pointed out I could write just the old columns. If a user manually adds the new columns to the old version nodes before upgrade they will be able to query this information across the cluster. This is a better situation then making it completely impossible for people to run repairs or perform tracing in mixed version clusters. This would avoid breaking repair and tracing in mixed version clusters. I also want to properly document how to do this and maybe even provide a script people can run to add the columns to old nodes. > In mixed 3.x/4 version clusters write tracing and repair history information > without new columns > ------------------------------------------------------------------------------------------------ > > Key: CASSANDRA-14897 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14897 > Project: Cassandra > Issue Type: Bug > Components: Distributed Metadata > Reporter: Ariel Weisberg > Assignee: Ariel Weisberg > Priority: Major > Labels: 4.0-pre-rc-bugs > Fix For: 4.0 > > Attachments: 14897.diff > > > In CASSANDRA-14841 I stopped it from writing to those tables so it wouldn't > generate any errors. Aleksey pointed out I could write just the old columns. > If a user manually adds the new columns to the old version nodes before > upgrade they will be able to query this information across the cluster. This > is a better situation then making it completely impossible for people to run > repairs or perform tracing in mixed version clusters. > This would avoid breaking repair and tracing in mixed version clusters. > The missing columns can be added by following [these > instructions|https://issues.apache.org/jira/browse/CASSANDRA-14841?focusedCommentId=16684959&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16684959] > For 3.0.15 and 3.11.1 and older versions: > {noformat} > cqlsh> ALTER TABLE system_distributed.repair_history ADD coordinator_port int; > cqlsh> ALTER TABLE system_distributed.repair_history ADD participants_v2 > set<text>; > {noformat} > For 3.0.16 and 3.11.2 and newer: > {noformat} > cqlsh> INSERT INTO system_schema.columns (keyspace_name , table_name , > column_name , clustering_order , column_name_bytes , kind , position , type ) > VALUES ( 'system_distributed', 'repair_history', 'coordinator_port', 'none', > 0x636f6f7264696e61746f725f706f7274, 'regular', -1, 'int'); > cqlsh> INSERT INTO system_schema.columns (keyspace_name , table_name , > column_name , clustering_order , column_name_bytes , kind , position , type ) > VALUES ( 'system_distributed', 'repair_history', 'participants_v2', 'none', > 0x7061727469636970616e74735f7632, 'regular', -1, 'set<text>'); > cqlsh> exit > $ nodetool reloadlocalschema > {noformat} > Remember that the INSERT's and nodetool reloadschema must be done on the same > node. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org