[ https://issues.apache.org/jira/browse/CASSANDRA-17042?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17454188#comment-17454188 ]
Caleb Rackliffe edited comment on CASSANDRA-17042 at 12/6/21, 6:57 PM: ----------------------------------------------------------------------- Note: A rebase to {{cassandra-4.0}} should pick up CASSANDRA-17119, which fixes a failure in the run above. was (Author: maedhroz): Note: A rebase would pick up CASSANDRA-17119, which is failing in the run above. > Avoid sstable corruption when upgrading from 4.0-rc1 to 4.0.0 > ------------------------------------------------------------- > > Key: CASSANDRA-17042 > URL: https://issues.apache.org/jira/browse/CASSANDRA-17042 > Project: Cassandra > Issue Type: Bug > Components: Consistency/Streaming, Local/SSTable > Reporter: Marcus Eriksson > Assignee: Marcus Eriksson > Priority: Normal > Fix For: 4.0.x, 4.x > > > 4.0-rc2 introduced a new sstable version ({{-nb-}}), adding a field in > {{StatsMetadata}}. When zero copy streaming a file from 4.0-rc2+ to 4.0-rc1, > the rc1 node will write it as an {{-nb-}} file, mutate the metadata to clear > repairedAt/level information from StatsMetadata and rewrite the file, keeping > the same file name. Problem is that since rc1 doesn't know about the new > field in StatsMetadata, it will write the file without the new StatsMetadata > field, but with an {{-nb-}} filename. Then, when upgrading this node to rc2+ > we will try to read it as a {{-nb-}} file, but will get {{EOFException}} > since it doesn't contain the new field. > We should make sure that we never do zero-copy streaming to nodes that don't > know about the file version. > The corrupt sstables can be fixed by simply renaming all components of it to > {{-na-}} from {{-nb-}} -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org