-
Notifications
You must be signed in to change notification settings - Fork 551
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
controller: fix Redpanda 22.3 failing to start when license was loaded with 22.2 Redpanda #7312
Conversation
1f2b865
to
306d452
Compare
306d452
to
6bbaea7
Compare
52012fc
to
aec470e
Compare
# Upload a license | ||
self.admin.put_license(license) | ||
|
||
# Update all nodes to newest version |
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.
This will need a followup to fix the version combinations: this is assuming that upgrades from 22.2->HEAD is what is wanted (i.e. on dev
it will be skipping 22.3.1)).
- Ensures licenses can be read/written by cluster between versions
aec470e
to
1efea4c
Compare
One unrelated test failure detected #6903:
|
/backport v22.3.x |
Was manually backported in #7318 |
Failed to run cherry-pick command. I executed the below command:
|
@@ -108,3 +108,41 @@ def test_basic_upgrade(self): | |||
|
|||
# Install license | |||
assert self.admin.put_license(license).status_code == 200 | |||
|
|||
|
|||
class UpgradeMigratingLicenseVersion(RedpandaTest): |
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.
can we have a follow here on a Matrix annotation that does a to-from upgrades of the last 12 months upgrades to latest
so ~4 or 5 upgrades.
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.
cc: @graphcareful
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.
@emaxerrno : AFAIK, we have upgrades from oldest supported release v21.11.x to intervening jumps to latest major's latest minor for the overall upgrade test.
I think what we might need here is to ensure that each such jump is upgrading from all-features-configured cluster to all-feature-in-next-version-cluster and so on.
And as @dotnwat pointed out having the binary compat testing would have caught this as well.
@@ -62,7 +62,8 @@ inline std::ostream& operator<<(std::ostream& os, license_type lt) { | |||
return os; | |||
} | |||
|
|||
struct license : serde::envelope<license, serde::version<1>> { | |||
struct license | |||
: serde::envelope<license, serde::version<1>, serde::compat_version<0>> { |
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.
this is a cool fix.
@jcsp , @dotnwat and @mmaslankaprv - should we make compat_version<>
explicit. No implicit versioning, in fact code should fail without compat-version?
maybe we check in with @felixguendling - seems like the issue was it compiled without serde::compat*
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.
the issue was that the compat version had the wrong default. i think it is now explicit, iiuc.
Yes, that was the immediate mitigation that I mentioned on slack, it is happening in #7314
The need to avoid skipping intermediate versions is tracked in #7310 What we need in addition for that is a "fully loaded" upgrade test that tries to configure/enable all the features we can think of, and then traverses that series of supported upgrade steps. We have a bunch of upgrade tests but they tend to focus on a feature at as time, and some of them skip straight from some older version straight to HEAD. |
gosh you are all so smart and competent. thanks for already filing tix, etc. |
Backport Required
release notes