-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
release-24.1: upgrades: fix destructive upgrade bug that was introduced when permanent upgrades were flattened #136074
base: release-24.1
Are you sure you want to change the base?
release-24.1: upgrades: fix destructive upgrade bug that was introduced when permanent upgrades were flattened #136074
Conversation
Thanks for opening a backport. Please check the backport criteria before merging:
If your backport adds new functionality, please ensure that the following additional criteria are satisfied:
Also, please add a brief release justification to the body of your PR to justify this |
…uted This test shows that there is a bug in how permanent upgrades are applied when upgrading from clusters that started on a version older than v23.1. Release note: None
This partially reverts commit 129d62a. It also fixes the roachtest that was added in the previous commit. In PR cockroachdb#119142, the permanent upgrades were flattened so that they all have a version of 0.0-x. That means that the last element of the permanentUpgrades slice has a version of 0.0-4. Clusters that were bootstrapped with a version from v23.1.0 or later will have rows in system.migrations for versions 0.0-x, since that is the version where the permanent upgrades framework was introduced (in PR cockroachdb#119142). However, clusters that are were bootstrapped from a version earlier than v23.1 will not yet have these rows in system.migrations for versions 0.0-x, and those migrations will only be present under the legacy startupmigrations key. Release note (bug fix): Fixed a bug that could cause the password for the root user to be deleted while upgrading to v24.1. This bug only affects clusters that were initially created with a version of v22.2 or earlier. The same bug could also cause the `defaultdb` and `postgres` databases to be recreated during the upgrade to v24.1 if they had been previously deleted.
590ee4d
to
e8e49c7
Compare
mvt := mixedversion.NewTest( | ||
ctx, t, t.L(), c, c.All(), | ||
// We want to start from v22.1 or earlier. | ||
mixedversion.MinUpgrades(4), |
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.
I wonder if should add mixedversion.MustUpgrades(x, y)
(to the framework) since MinUpgrades
will rot over time, i.e., as of v25.2.
fixes #133519
Release justification: fixes a major bug
roachtest: add test to verify that permanent upgrades are not re-executed
This test shows that there is a bug in how permanent upgrades are
applied when upgrading from clusters that started on a version older
than v23.1.
Release note: None
Revert "upgrades: remove v22_2 compatibility"
This partially reverts commit 129d62a.
It also fixes the roachtest that was added in the previous commit.
In PR #119142, the permanent upgrades were flattened so that they
all have a version of 0.0-x. That means that the last element of
the permanentUpgrades slice has a version of 0.0-4. Clusters that were
bootstrapped with a version from v23.1.0 or later will have rows in
system.migrations for versions 0.0-x, since that is the version where
the permanent upgrades framework was introduced (in PR #119142).
However, clusters that were bootstrapped from a version
earlier than v23.1 will not yet have these rows in system.migrations for
versions 0.0-x, and those migrations will only be present under the
legacy startupmigrations key.
Release note (bug fix): Fixed a bug that could cause the password for
the root user to be deleted while upgrading to v24.1. This bug only
affects clusters that were initially created with a version of v22.2
or earlier.
The same bug could also cause the
defaultdb
andpostgres
databasesto be recreated during the upgrade to v24.1 if they had been previously
deleted.