-
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
clusterversion: set binaryMinSupportedVersion
to v21_1
#67281
clusterversion: set binaryMinSupportedVersion
to v21_1
#67281
Conversation
1b94f6e
to
721798e
Compare
Just stumbled into this; some process Qs:
|
does this need help? |
721798e
to
965ef75
Compare
This has been rebased and most of the failures removed because of #67822. I added another commit to fix a real problem. I am left somewhat confused: why are we running the migration before bumping to the fence version? @irfansharif am I missing something or is this migration call in the wrong place? |
965ef75
to
8ee9951
Compare
I think I've got it sorted. We do it to make sure the version gating for new nodes joining is sound |
8ee9951
to
a1e4df7
Compare
I would like very much to backport the 2nd commit. Who needs to look at it and what additional testing does it need? |
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.
1st, 3rd and 4th commit LGTM
Would like a review from @irfansharif on the 2nd commit too
Reviewed 5 of 5 files at r4, 2 of 3 files at r5, 2 of 2 files at r7, 1 of 1 files at r8.
Reviewable status: complete! 0 of 0 LGTMs obtained (waiting on @ajwerner)
pkg/migration/migrationmanager/manager.go, line 295 at r7 (raw file):
alreadyCompleted, err = migrationjob.CheckIfMigrationCompleted(ctx, txn, m.ie, version) if alreadyCompleted || err != nil { log.Infof(ctx, "already completed or error %v", err)
maybe split the cases and use log.Errorf
where appropriate?
… version The test was only working because we allowed the minBinarySupportedVersion to be quite old. Release note: None
…tion Before this change, the code would run a migration, then validate that it can bump the cluster version. This is a little bit wacky and can lead to lots of jobs being created, jobs which may ultimately fail. This change is good in that it both prevents jobs from being created and gives us an error before we bump the cluster version to the fence version. Release note (bug fix): Fixed a bug where migration jobs might run and update a cluster version before the cluster was ready for the upgrade. The bug could result in many extra failed migration jobs.
a1e4df7
to
b64dc88
Compare
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.
Reviewable status: complete! 0 of 0 LGTMs obtained (waiting on @knz)
pkg/migration/migrationmanager/manager.go, line 295 at r7 (raw file):
Previously, knz (kena) wrote…
maybe split the cases and use
log.Errorf
where appropriate?
Done.
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.
why are we running the migration before bumping to the fence version? @irfansharif am I missing something or is this migration call in the wrong place?
We do it to make sure the version gating for new nodes joining is sound
Yup. The other thing to note is that the release demarcation versions (Start21_2
, Start21_1
, etc.) don't have any migrations attached to them. The migration manager will then:
runMigration(..., Start21_2)
bumpClusterVersion(..., fenceVersionFor(Start21_2))
runMigration(..., <first real version in 21.2>)
As I say this I realize we don't have panics/asserts making sure we don't accidentally attach a migration on one of these special StartXY_Z
versions. We could document/assert in this PR if you feel it necessary.
// We want to exercise manual control over the upgrade process. | ||
DisableAutomaticVersionUpgrade: 1, | ||
makeArgs := func() (args base.TestServerArgs) { | ||
minVersion := minVersion |
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.
Why have these?
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.
Detritus. I think at some point for some reason there were some pointers involved. Removed.
(Also sorry for the review lag, only now crawling out of my inbox after a hectic L2 rotation + a long weekend.) |
This probably should have been done when `Start21_2` was added. Fixes cockroachdb#67277. Release note: None
b64dc88
to
42e952d
Compare
TFTR! bors r+ |
Build succeeded: |
This probably should have been done when
Start21_2
was added.Fixes #67277.
Release note: None