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

Move towards MySQL 8.0 as the default template generation #11153

Conversation

dbussink
Copy link
Contributor

@dbussink dbussink commented Sep 1, 2022

This upgrades the remaining things to Ubuntu 20.04 and makes MySQL 8.0 the default we run tests against. We still have tests for MySQL 5.7 but those are now explicitly opted into.

This should finish up the Ubuntu 20.04 upgrade and also makes things easier for the future when we need to upgrade again.

It is also marked as back port since we want to keep this updated on back ports as well or otherwise we're be blocked in the somewhat near future when 18.04 is deprecated. We probably want to look at changing the default maybe back there to 5.7 (to minimize other test changes that happened in previous PRs like #11118) but that's a separate step to look at during back porting.

Related Issue(s)

Part of the upgrade already started with #11026 but keeping things sensible in the CI generation scripts is much easier with this upgrade we think.

Checklist

  • "Backport me!" label has been added if this change should be backported
  • Tests were added or are not required
  • Documentation was added or is not required

This upgrades the remaining things to Ubuntu 20.04 and makes MySQL 8.0
the default we run tests against. We still have tests for MySQL 5.7 but
those are now explicitly opted into.

This should finish up the Ubuntu 20.04 upgrade and also makes things
easier for the future when we need to upgrade again.

Signed-off-by: Dirkjan Bussink <[email protected]>
@vitess-bot
Copy link
Contributor

vitess-bot bot commented Sep 1, 2022

Review Checklist

Hello reviewers! 👋 Please follow this checklist when reviewing this Pull Request.

General

  • Ensure that the Pull Request has a descriptive title.
  • If this is a change that users need to know about, please apply the release notes (needs details) label so that merging is blocked unless the summary release notes document is included.
  • If a new flag is being introduced, review whether it is really needed. The flag names should be clear and intuitive (as far as possible), and the flag's help should be descriptive. Additionally, flag names should use dashes (-) as word separators rather than underscores (_).
  • If a workflow is added or modified, each items in Jobs should be named in order to mark it as required. If the workflow should be required, the GitHub Admin should be notified.

Bug fixes

  • There should be at least one unit or end-to-end test.
  • The Pull Request description should either include a link to an issue that describes the bug OR an actual description of the bug and how to reproduce, along with a description of the fix.

Non-trivial changes

  • There should be some code comments as to why things are implemented the way they are.

New/Existing features

  • Should be documented, either by modifying the existing documentation or creating new documentation.
  • New features should have a link to a feature request issue or an RFC that documents the use cases, corner cases and test cases.

Backward compatibility

  • Protobuf changes should be wire-compatible.
  • Changes to _vt tables and RPCs need to be backward compatible.
  • vtctl command output order should be stable and awk-able.

@dbussink dbussink mentioned this pull request Sep 1, 2022
3 tasks
@@ -121,15 +120,14 @@ var (
"vreplication_cellalias",
Copy link
Member

@deepthi deepthi Sep 19, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line 117: do we still need a separate mysql80 test?

test/ci_workflow_gen.go Show resolved Hide resolved
@deepthi deepthi added this to the v15.0 milestone Sep 20, 2022
Copy link
Member

@GuptaManan100 GuptaManan100 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything else looks good to me!

@@ -93,7 +93,7 @@ func TestReadTopologyInstanceBufferable(t *testing.T) {
assert.Contains(t, primaryInstance.InstanceAlias, "zone1")
assert.NotEqual(t, 0, primaryInstance.ServerID)
assert.Greater(t, len(primaryInstance.ServerUUID), 10)
assert.Contains(t, primaryInstance.Version, "5.7")
assert.Contains(t, primaryInstance.Version, "8.0")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can use assert.Regexp(t, [58].[07].*, replicaInstance.Version) instead. This will make this test work with both 5.7 and 8.0

@deepthi deepthi marked this pull request as ready for review September 26, 2022 17:22
@deepthi
Copy link
Member

deepthi commented Sep 27, 2022

I've addressed the feedback, and except for the known issue with vtbackup_transform, tests are passing.
When we merge this, we also need to remove a bunch of required checks and add new ones.
I'm inclined to wait until all of the WIP flag PRs are merged and then do one more merge from main into this PR before we merge it.

@rsajwani rsajwani mentioned this pull request Oct 3, 2022
17 tasks
…80-default-ci-template-generation

Signed-off-by: Rameez Sajwani <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Copy link
Contributor

@mattlord mattlord left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️

@deepthi deepthi merged commit e93e197 into vitessio:main Oct 3, 2022
@deepthi deepthi deleted the dbussink/move-mysql80-default-ci-template-generation branch October 3, 2022 21:04
@vitess-bot
Copy link
Contributor

vitess-bot bot commented Oct 3, 2022

I was unable to backport this Pull Request to the following branches: release-14.0, release-13.0.

@rsajwani rsajwani mentioned this pull request Oct 4, 2022
100 tasks
rsajwani added a commit to planetscale/vitess that referenced this pull request Oct 11, 2022
…1153)

* Move towards MySQL 8.0 as the default template generation

This upgrades the remaining things to Ubuntu 20.04 and makes MySQL 8.0
the default we run tests against. We still have tests for MySQL 5.7 but
those are now explicitly opted into.

This should finish up the Ubuntu 20.04 upgrade and also makes things
easier for the future when we need to upgrade again.

Signed-off-by: Dirkjan Bussink <[email protected]>

* CI: rename shard vtorc_8.0 to vtorc_5.7, change expected test output for 8.0

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout for 8.0 tests on the actual test step from 30 to 45 mins

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout to 45 minutes for mysql57 tests too. We really only need this for vtorc, but I've made the change to the template so all tests get it.

Signed-off-by: deepthi <[email protected]>

* CI: fix vtorc test to work with both 5.7 and 8.0

Signed-off-by: deepthi <[email protected]>

* CI: missed docker flag in mysql57 template, one more fix to vtorc test

Signed-off-by: deepthi <[email protected]>

* removing spaces from pb file

Signed-off-by: Rameez Sajwani <[email protected]>

* removing spaces in pb file part 2

Signed-off-by: Rameez Sajwani <[email protected]>

Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: deepthi <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Co-authored-by: deepthi <[email protected]>
Co-authored-by: Rameez Sajwani <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
rsajwani added a commit to planetscale/vitess that referenced this pull request Nov 2, 2022
…1153)

* Move towards MySQL 8.0 as the default template generation

This upgrades the remaining things to Ubuntu 20.04 and makes MySQL 8.0
the default we run tests against. We still have tests for MySQL 5.7 but
those are now explicitly opted into.

This should finish up the Ubuntu 20.04 upgrade and also makes things
easier for the future when we need to upgrade again.

Signed-off-by: Dirkjan Bussink <[email protected]>

* CI: rename shard vtorc_8.0 to vtorc_5.7, change expected test output for 8.0

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout for 8.0 tests on the actual test step from 30 to 45 mins

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout to 45 minutes for mysql57 tests too. We really only need this for vtorc, but I've made the change to the template so all tests get it.

Signed-off-by: deepthi <[email protected]>

* CI: fix vtorc test to work with both 5.7 and 8.0

Signed-off-by: deepthi <[email protected]>

* CI: missed docker flag in mysql57 template, one more fix to vtorc test

Signed-off-by: deepthi <[email protected]>

* removing spaces from pb file

Signed-off-by: Rameez Sajwani <[email protected]>

* removing spaces in pb file part 2

Signed-off-by: Rameez Sajwani <[email protected]>

Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: deepthi <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Co-authored-by: deepthi <[email protected]>
Co-authored-by: Rameez Sajwani <[email protected]>
rsajwani added a commit to planetscale/vitess that referenced this pull request Nov 17, 2022
…1153)

* Move towards MySQL 8.0 as the default template generation

This upgrades the remaining things to Ubuntu 20.04 and makes MySQL 8.0
the default we run tests against. We still have tests for MySQL 5.7 but
those are now explicitly opted into.

This should finish up the Ubuntu 20.04 upgrade and also makes things
easier for the future when we need to upgrade again.

Signed-off-by: Dirkjan Bussink <[email protected]>

* CI: rename shard vtorc_8.0 to vtorc_5.7, change expected test output for 8.0

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout for 8.0 tests on the actual test step from 30 to 45 mins

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout to 45 minutes for mysql57 tests too. We really only need this for vtorc, but I've made the change to the template so all tests get it.

Signed-off-by: deepthi <[email protected]>

* CI: fix vtorc test to work with both 5.7 and 8.0

Signed-off-by: deepthi <[email protected]>

* CI: missed docker flag in mysql57 template, one more fix to vtorc test

Signed-off-by: deepthi <[email protected]>

* removing spaces from pb file

Signed-off-by: Rameez Sajwani <[email protected]>

* removing spaces in pb file part 2

Signed-off-by: Rameez Sajwani <[email protected]>

Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: deepthi <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Co-authored-by: deepthi <[email protected]>
Co-authored-by: Rameez Sajwani <[email protected]>
harshit-gangal pushed a commit that referenced this pull request Nov 22, 2022
…11619)

* Move towards MySQL 8.0 as the default template generation (#11153)

* Move towards MySQL 8.0 as the default template generation

This upgrades the remaining things to Ubuntu 20.04 and makes MySQL 8.0
the default we run tests against. We still have tests for MySQL 5.7 but
those are now explicitly opted into.

This should finish up the Ubuntu 20.04 upgrade and also makes things
easier for the future when we need to upgrade again.

Signed-off-by: Dirkjan Bussink <[email protected]>

* CI: rename shard vtorc_8.0 to vtorc_5.7, change expected test output for 8.0

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout for 8.0 tests on the actual test step from 30 to 45 mins

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout to 45 minutes for mysql57 tests too. We really only need this for vtorc, but I've made the change to the template so all tests get it.

Signed-off-by: deepthi <[email protected]>

* CI: fix vtorc test to work with both 5.7 and 8.0

Signed-off-by: deepthi <[email protected]>

* CI: missed docker flag in mysql57 template, one more fix to vtorc test

Signed-off-by: deepthi <[email protected]>

* removing spaces from pb file

Signed-off-by: Rameez Sajwani <[email protected]>

* removing spaces in pb file part 2

Signed-off-by: Rameez Sajwani <[email protected]>

Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: deepthi <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Co-authored-by: deepthi <[email protected]>
Co-authored-by: Rameez Sajwani <[email protected]>

* fixing template files to default to mysql80

Signed-off-by: Rameez Sajwani <[email protected]>

* changing update statement to alter

Signed-off-by: Rameez Sajwani <[email protected]>

* Avoid deadlocks related to 0 receiver behavior (#10132)

* Prevent deadlocks related to 0 receiver behavior

Signed-off-by: Matt Lord <[email protected]>

* Update test tables to use poller_idx

Signed-off-by: Matt Lord <[email protected]>

* Minor changes after mutex usage review in message manager + cache

Signed-off-by: Matt Lord <[email protected]>

* Use atomics for receiver count and messages pending

Signed-off-by: Matt Lord <[email protected]>

* Don't take exclusive lock when in fast path

Signed-off-by: Matt Lord <[email protected]>

* Update tests to use the new recommended message table structure

See: vitessio/website#1015

Signed-off-by: Matt Lord <[email protected]>

* Correct tests

Signed-off-by: Matt Lord <[email protected]>

* Update e2e test to use new recommended table structure

Signed-off-by: Matt Lord <[email protected]>

* Fix TestMessageStreamingPlan test

Signed-off-by: Matt Lord <[email protected]>

* Fix godriver/TestStreamMessaging test

Signed-off-by: Matt Lord <[email protected]>

* Split streamMu into streamProcessingMu and lastPollPositionMu

Signed-off-by: Matt Lord <[email protected]>

* Poller cannot take main lock w/o having X stream processing lock

Signed-off-by: Matt Lord <[email protected]>

* Improve the comments a bit

Signed-off-by: Matt Lord <[email protected]>

* Hold the main mutex during Add

This is for safe concurrency with the last receiver unsubscribing

Signed-off-by: Matt Lord <[email protected]>

* Changes after pair reviewing with Sugu

Signed-off-by: Matt Lord <[email protected]>

* Use my GitHub handle for the self reference

Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>

* remove unwanted sleep

Signed-off-by: Rameez Sajwani <[email protected]>

* Fix failures

Signed-off-by: Rameez Sajwani <[email protected]>

* Fix backup tests

Signed-off-by: Rameez Sajwani <[email protected]>

* fix vtgate_gen4 error

Signed-off-by: Rameez Sajwani <[email protected]>

* upgrading to mysql 8.0 using vinalla mysql

Signed-off-by: Rameez Sajwani <[email protected]>

* pin to specific version 8.0.25

Signed-off-by: Rameez Sajwani <[email protected]>

* Try to pin mysql version to 8.0.25 using tar file

Signed-off-by: Rameez Sajwani <[email protected]>

* Fix bug in last commit for 8.0.25

Signed-off-by: Rameez Sajwani <[email protected]>

* fixing template files to use mysql8.0.25

Signed-off-by: Rameez Sajwani <[email protected]>

* fixing community version

Signed-off-by: Rameez Sajwani <[email protected]>

* removing all mysql version before installation

Signed-off-by: Rameez Sajwani <[email protected]>

* moving cluster 11 to self host

Signed-off-by: Rameez Sajwani <[email protected]>

* trying different combination since mysql is not getting installed correctly

Signed-off-by: Rameez Sajwani <[email protected]>

* use tar instead of deb file

Signed-off-by: Rameez Sajwani <[email protected]>

* remove mysql stop statement

Signed-off-by: Rameez Sajwani <[email protected]>

* setting vt_mysql_root

Signed-off-by: Rameez Sajwani <[email protected]>

* moving export to right place

Signed-off-by: Rameez Sajwani <[email protected]>

* change template to accomodate tar file download

Signed-off-by: Rameez Sajwani <[email protected]>

* fixing mysql80 cluster

Signed-off-by: Rameez Sajwani <[email protected]>

* Adding mysql to the path env variable

Signed-off-by: Rameez Sajwani <[email protected]>

* fixing shardedpitr_tls test

Signed-off-by: Rameez Sajwani <[email protected]>

* fix upgrade-downgrade test

Signed-off-by: Rameez Sajwani <[email protected]>

* adjust epected AUTO_INCREMENT value

Signed-off-by: Shlomi Noach <[email protected]>

* removed 'expected_table_structure' files because there are different outputs in mysql57 and in mysql80

Signed-off-by: Shlomi Noach <[email protected]>

* adding mysql version in workflow logs

Signed-off-by: Rameez Sajwani <[email protected]>

* move to utuntu 18 for upgrade-downgrade test

Signed-off-by: Rameez Sajwani <[email protected]>

Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: deepthi <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Shlomi Noach <[email protected]>
Co-authored-by: Dirkjan Bussink <[email protected]>
Co-authored-by: deepthi <[email protected]>
Co-authored-by: Matt Lord <[email protected]>
Co-authored-by: Shlomi Noach <[email protected]>
deepthi added a commit that referenced this pull request Nov 30, 2022
* Move towards MySQL 8.0 as the default template generation (#11153)

* Move towards MySQL 8.0 as the default template generation

This upgrades the remaining things to Ubuntu 20.04 and makes MySQL 8.0
the default we run tests against. We still have tests for MySQL 5.7 but
those are now explicitly opted into.

This should finish up the Ubuntu 20.04 upgrade and also makes things
easier for the future when we need to upgrade again.

Signed-off-by: Dirkjan Bussink <[email protected]>

* CI: rename shard vtorc_8.0 to vtorc_5.7, change expected test output for 8.0

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout for 8.0 tests on the actual test step from 30 to 45 mins

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout to 45 minutes for mysql57 tests too. We really only need this for vtorc, but I've made the change to the template so all tests get it.

Signed-off-by: deepthi <[email protected]>

* CI: fix vtorc test to work with both 5.7 and 8.0

Signed-off-by: deepthi <[email protected]>

* CI: missed docker flag in mysql57 template, one more fix to vtorc test

Signed-off-by: deepthi <[email protected]>

* removing spaces from pb file

Signed-off-by: Rameez Sajwani <[email protected]>

* removing spaces in pb file part 2

Signed-off-by: Rameez Sajwani <[email protected]>

Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: deepthi <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Co-authored-by: deepthi <[email protected]>
Co-authored-by: Rameez Sajwani <[email protected]>

* changing update statement to alter

Signed-off-by: Rameez Sajwani <[email protected]>

* Adding mysql 8.0.25

Signed-off-by: Rameez Sajwani <[email protected]>

* fix junit
Signed-off-by: Rameez Sajwani <[email protected]>

* fixing failures

Signed-off-by: Rameez Sajwani <[email protected]>

* fixing more unit tests

Signed-off-by: Rameez Sajwani <[email protected]>

* fix selfhost test

Signed-off-by: Rameez Sajwani <[email protected]>

* Fixing selfhosted workflows

Signed-off-by: Rameez Sajwani <[email protected]>

* fixing vreplication_v2

Signed-off-by: Rameez Sajwani <[email protected]>

* removing cluster 12 and 18 from selfhosted

Signed-off-by: Rameez Sajwani <[email protected]>

* manual fixing some workflows

Signed-off-by: Rameez Sajwani <[email protected]>

* making vreplication_v2 exactly like upstream

Signed-off-by: Rameez Sajwani <[email protected]>

* Moving all the workflow to latest mysql version (vanilla)

Signed-off-by: Rameez Sajwani <[email protected]>

* remove port restrictions

Signed-off-by: Rameez Sajwani <[email protected]>

* tmp fix for vreplication_v2

Signed-off-by: Rameez Sajwani <[email protected]>

* making vreplication_v2 to previous version

Signed-off-by: Rameez Sajwani <[email protected]>

* correcting typo

Signed-off-by: Rameez Sajwani <[email protected]>

* mvoing vreplication_v2 to selfhost

Signed-off-by: Rameez Sajwani <[email protected]>

* change docker image to mysql80

Signed-off-by: Rameez Sajwani <[email protected]>

* removing limited source from vrepl

Signed-off-by: Rameez Sajwani <[email protected]>

* revert back last commit changes

Signed-off-by: Rameez Sajwani <[email protected]>

* test: fix aggregation test

Signed-off-by: Harshit Gangal <[email protected]>

* removing ptrtls

Signed-off-by: Rameez Sajwani <[email protected]>

* remove pitrTls tests

Signed-off-by: Rameez Sajwani <[email protected]>

* changing source/destination to mysql8.0 for vreplication

Signed-off-by: Rameez Sajwani <[email protected]>

* remove unwanted workflows

Signed-off-by: Rameez Sajwani <[email protected]>

* adding timeout to stress test

Signed-off-by: Rameez Sajwani <[email protected]>

* feeback through code review

Signed-off-by: Rameez Sajwani <[email protected]>

Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: deepthi <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Signed-off-by: Harshit Gangal <[email protected]>
Co-authored-by: Dirkjan Bussink <[email protected]>
Co-authored-by: deepthi <[email protected]>
Co-authored-by: Harshit Gangal <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants