Skip to content
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

sql/schemachanger/scbuild: ensure proper version gating for mixed-version state #79840

Closed
ajwerner opened this issue Apr 12, 2022 · 5 comments · Fixed by #86604 or #86950
Closed

sql/schemachanger/scbuild: ensure proper version gating for mixed-version state #79840

ajwerner opened this issue Apr 12, 2022 · 5 comments · Fixed by #86604 or #86950
Assignees
Labels
branch-release-22.2 Used to mark GA and release blockers, technical advisories, and bugs for 22.2 C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) GA-blocker T-sql-foundations SQL Foundations Team (formerly SQL Schema + SQL Sessions)

Comments

@ajwerner
Copy link
Contributor

ajwerner commented Apr 12, 2022

Is your feature request related to a problem? Please describe.

We ought to produce the same elements in the mixed version state as we do in the old version. That's how we'll ensure compatibility. We need to both do that and to validate that we do that.

Describe the solution you'd like

We need to find a way to ensure that the same statement and initial state result in the same exact state protobufs between the previous version and the current version. We could do this in a variety of ways, including writing "golden" protos on a per-release basis or finding a way to link old code directly.

Describe alternatives you've considered
There might be some way to do this as an integration test. I don't know that that would be better.

Jira issue: CRDB-15895

@ajwerner ajwerner added the C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) label Apr 12, 2022
@blathers-crl blathers-crl bot added the T-sql-schema-deprecated Use T-sql-foundations instead label Apr 12, 2022
@jlinder jlinder added sync-me and removed sync-me labels May 20, 2022
@ajwerner ajwerner added the release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. label Aug 15, 2022
@blathers-crl
Copy link

blathers-crl bot commented Aug 15, 2022

Hi @ajwerner, please add branch-* labels to identify which branch(es) this release-blocker affects.

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is otan.

@ajwerner ajwerner added GA-blocker and removed release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. labels Aug 15, 2022
@blathers-crl
Copy link

blathers-crl bot commented Aug 15, 2022

Hi @ajwerner, please add branch-* labels to identify which branch(es) this release-blocker affects.

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is otan.

@ajwerner ajwerner added the branch-release-22.2 Used to mark GA and release blockers, technical advisories, and bugs for 22.2 label Aug 15, 2022
@postamar postamar added release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. and removed GA-blocker labels Aug 16, 2022
@ajwerner
Copy link
Contributor Author

The issue is a bit more involved than what we need up front. The initial task here is to just mark the statements and alter for which commands for which we added support in the new release and to gate them on cluster version activation. The secondary tasks relate to testing. Let's do the gating in an initial PR and think about testing for a second PR.

@Xiang-Gu
Copy link
Contributor

The merged PR was only part 1/2 towards ensuring backward compatibility in mixed version state for declarative schema changer.

As part 2/2, I have written a roachtest that aims to test declarative schema changer jobs created by nodes running in the newer version should be able to be adopted and finished by nodes running in the older version. That PR is currently blocked because of known issues (e.g. OFFLINE status is not backward compatible so Andrew is working on a PR that removes it and brings TXN_DROPPED status back).

I'm going to reopen this issue, and it should be closed once that roachtest passes, which means we fixed all the backward incompatibility.

@ajwerner
Copy link
Contributor Author

ajwerner commented Sep 6, 2022

The basic part of this is done in #86604, we'll downgrade to GA blocker to wait for roachtest in #86950

@ajwerner ajwerner added GA-blocker and removed release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. labels Sep 12, 2022
@craig craig bot closed this as completed in d0bfc45 Sep 20, 2022
@exalate-issue-sync exalate-issue-sync bot added T-sql-foundations SQL Foundations Team (formerly SQL Schema + SQL Sessions) and removed T-sql-schema-deprecated Use T-sql-foundations instead labels May 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
branch-release-22.2 Used to mark GA and release blockers, technical advisories, and bugs for 22.2 C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) GA-blocker T-sql-foundations SQL Foundations Team (formerly SQL Schema + SQL Sessions)
Projects
None yet
4 participants