-
Notifications
You must be signed in to change notification settings - Fork 25.2k
Fix Snapshot Repository Corruption in Downgrade Scenarios #50692
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Snapshot Repository Corruption in Downgrade Scenarios #50692
Conversation
Pinging @elastic/es-distributed (:Distributed/Snapshot/Restore) |
@ywelsch thanks, all addressed again I think |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - only left minor comments. I do like the tests.
...y-multi-version/src/test/java/org/elasticsearch/upgrades/MultiVersionRepositoryAccessIT.java
Outdated
Show resolved
Hide resolved
...y-multi-version/src/test/java/org/elasticsearch/upgrades/MultiVersionRepositoryAccessIT.java
Outdated
Show resolved
Hide resolved
...y-multi-version/src/test/java/org/elasticsearch/upgrades/MultiVersionRepositoryAccessIT.java
Outdated
Show resolved
Hide resolved
...y-multi-version/src/test/java/org/elasticsearch/upgrades/MultiVersionRepositoryAccessIT.java
Outdated
Show resolved
Hide resolved
Jenkins run elasticsearch-ci/2 (known unrelated ILM issue) |
Jenkins run elasticsearch-ci/2 (known ILM test failure again) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for the extra iterations!
Thanks Yannick + Tanguy! |
…50797) * Fix Snapshot Repository Corruption in Downgrade Scenarios (#50692) This PR introduces test infrastructure for downgrading a cluster while interacting with a given repository. It fixes the fact that repository metadata in the new format could be written while there's still older snapshots in the repository that require the old-format metadata to be restorable.
Follow up to elastic#50692 that starts writing a `min_version` field to the `RepositoryData` so that pre-7.6 ES versions can not read it (and potentially corrupt it if they attempt to modify the repo contents) after the repository moved to the new metadata format.
…lastic#50853) Follow up to elastic#50692 that starts writing a `min_version` field to the `RepositoryData` so that pre-7.6 ES versions can not read it (and potentially corrupt it if they attempt to modify the repo contents) after the repository moved to the new metadata format.
…lastic#50853) Follow up to elastic#50692 that starts writing a `min_version` field to the `RepositoryData` so that pre-7.6 ES versions can not read it (and potentially corrupt it if they attempt to modify the repo contents) after the repository moved to the new metadata format.
This PR introduces test infrastructure for downgrading a cluster while interacting with a given repository.
It fixes the fact that repository metadata in the new format could be written while there's still older snaphshots in the repository that require the old-format metadata to be restorable.
This PR does not yet introduce a new field in
RepositoryData
to avoid old versions from corrupting the repository. That will have to happen in a subsequent PR once the ability to read the newmin_version
field has been backported to7.6
(see related TODO in the diff).Marked
non-issue
since this problem never made it into a release.