diff --git a/.github/workflows/assign_milestone.yml b/.github/workflows/assign_milestone.yml
index 93d853946ea..933c6c667cd 100644
--- a/.github/workflows/assign_milestone.yml
+++ b/.github/workflows/assign_milestone.yml
@@ -20,7 +20,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Checkout code
uses: actions/checkout@v3
diff --git a/.github/workflows/check_make_vtadmin_authz_testgen.yml b/.github/workflows/check_make_vtadmin_authz_testgen.yml
index e4de2e1ac8c..d0113ae849d 100644
--- a/.github/workflows/check_make_vtadmin_authz_testgen.yml
+++ b/.github/workflows/check_make_vtadmin_authz_testgen.yml
@@ -48,7 +48,7 @@ jobs:
uses: actions/setup-go@v3
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.vtadmin_changes == 'true'
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.vtadmin_changes == 'true'
diff --git a/.github/workflows/check_make_vtadmin_web_proto.yml b/.github/workflows/check_make_vtadmin_web_proto.yml
index 940adfc3af8..ce239e0829e 100644
--- a/.github/workflows/check_make_vtadmin_web_proto.yml
+++ b/.github/workflows/check_make_vtadmin_web_proto.yml
@@ -50,7 +50,7 @@ jobs:
uses: actions/setup-go@v3
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.proto_changes == 'true'
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Setup Node
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.proto_changes == 'true'
diff --git a/.github/workflows/cluster_endtoend_12.yml b/.github/workflows/cluster_endtoend_12.yml
index ca8d08fc063..8bc592dbb59 100644
--- a/.github/workflows/cluster_endtoend_12.yml
+++ b/.github/workflows/cluster_endtoend_12.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_13.yml b/.github/workflows/cluster_endtoend_13.yml
index b0a12f83492..8c092af3da1 100644
--- a/.github/workflows/cluster_endtoend_13.yml
+++ b/.github/workflows/cluster_endtoend_13.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_15.yml b/.github/workflows/cluster_endtoend_15.yml
index 392b8f71b7b..3c18379ddb6 100644
--- a/.github/workflows/cluster_endtoend_15.yml
+++ b/.github/workflows/cluster_endtoend_15.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_18.yml b/.github/workflows/cluster_endtoend_18.yml
index 30b0b7a7dd3..d5303beb7f9 100644
--- a/.github/workflows/cluster_endtoend_18.yml
+++ b/.github/workflows/cluster_endtoend_18.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_21.yml b/.github/workflows/cluster_endtoend_21.yml
index af01e8c42b2..95224404568 100644
--- a/.github/workflows/cluster_endtoend_21.yml
+++ b/.github/workflows/cluster_endtoend_21.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_22.yml b/.github/workflows/cluster_endtoend_22.yml
index f3ae2848db8..323be9e06f0 100644
--- a/.github/workflows/cluster_endtoend_22.yml
+++ b/.github/workflows/cluster_endtoend_22.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_backup_pitr.yml b/.github/workflows/cluster_endtoend_backup_pitr.yml
index 7533b2f54e5..e660b9c3b6e 100644
--- a/.github/workflows/cluster_endtoend_backup_pitr.yml
+++ b/.github/workflows/cluster_endtoend_backup_pitr.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_backup_pitr_mysql57.yml b/.github/workflows/cluster_endtoend_backup_pitr_mysql57.yml
index 903f9af4d4f..fc5b129165f 100644
--- a/.github/workflows/cluster_endtoend_backup_pitr_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_backup_pitr_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -94,9 +96,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml b/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml
index 1ec1c0d140e..3f2f8ba01ab 100644
--- a/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml
+++ b/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_mysql80.yml b/.github/workflows/cluster_endtoend_mysql80.yml
index f686a4e92d8..4861ef31862 100644
--- a/.github/workflows/cluster_endtoend_mysql80.yml
+++ b/.github/workflows/cluster_endtoend_mysql80.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_mysql_server_vault.yml b/.github/workflows/cluster_endtoend_mysql_server_vault.yml
index abc077d37ff..4530a32873a 100644
--- a/.github/workflows/cluster_endtoend_mysql_server_vault.yml
+++ b/.github/workflows/cluster_endtoend_mysql_server_vault.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_onlineddl_ghost.yml b/.github/workflows/cluster_endtoend_onlineddl_ghost.yml
index 855503838cb..0aa56ef35a4 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_ghost.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_ghost.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -84,9 +86,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_onlineddl_ghost_mysql57.yml b/.github/workflows/cluster_endtoend_onlineddl_ghost_mysql57.yml
index e9fcd70a439..f5ad80c9ad0 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_ghost_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_ghost_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -95,9 +97,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_onlineddl_revert.yml b/.github/workflows/cluster_endtoend_onlineddl_revert.yml
index 9991dc8e095..1c1ebc5e4bd 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_revert.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_revert.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -84,9 +86,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_onlineddl_revert_mysql57.yml b/.github/workflows/cluster_endtoend_onlineddl_revert_mysql57.yml
index 844a2d4542e..66fb48fa1f5 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_revert_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_revert_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -95,9 +97,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml b/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml
index 92069c38a61..767cfdbe076 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -84,9 +86,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_onlineddl_scheduler_mysql57.yml b/.github/workflows/cluster_endtoend_onlineddl_scheduler_mysql57.yml
index 809ce19b694..9efa0c80738 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_scheduler_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_scheduler_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -95,9 +97,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml
index 74d3b457c83..d158d1ed3c4 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -84,9 +86,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_mysql57.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_mysql57.yml
index 7f8c75cf999..2c51082ac16 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -95,9 +97,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml
index f2b5b43ff59..dd9fcd0e9e9 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -84,9 +86,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_mysql57.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_mysql57.yml
index 2ba485388aa..39ec27da3ae 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -95,9 +97,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml
index 673c0b6edb6..4d7ad8d411f 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -84,9 +86,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite_mysql57.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite_mysql57.yml
index fcfdcafc557..4c085053f5b 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -95,9 +97,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml
index bb8bcafa1f7..83b4ffe962d 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -84,9 +86,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite_mysql57.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite_mysql57.yml
index 5f8dad70671..b41f37de6b8 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -95,9 +97,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml b/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml
index 4df0066460d..44b6c845299 100644
--- a/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml
+++ b/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -84,9 +86,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_schemadiff_vrepl_mysql57.yml b/.github/workflows/cluster_endtoend_schemadiff_vrepl_mysql57.yml
index 43c2c5696d7..ce08416fa65 100644
--- a/.github/workflows/cluster_endtoend_schemadiff_vrepl_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_schemadiff_vrepl_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -95,9 +97,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_consul.yml b/.github/workflows/cluster_endtoend_tabletmanager_consul.yml
index f32873ab5e9..fda18a0b331 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_consul.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_consul.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml b/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml
index c94acf6cfe6..53a8ff74805 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_tablegc_mysql57.yml b/.github/workflows/cluster_endtoend_tabletmanager_tablegc_mysql57.yml
index 21a18695acc..501315b06fa 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_tablegc_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_tablegc_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -94,9 +96,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_throttler.yml b/.github/workflows/cluster_endtoend_tabletmanager_throttler.yml
index d4b0adad619..fbd8fa232f4 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_throttler.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_throttler.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_throttler_custom_config.yml b/.github/workflows/cluster_endtoend_tabletmanager_throttler_custom_config.yml
index 5f12dc5edde..ab8a76caaf1 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_throttler_custom_config.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_throttler_custom_config.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml b/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml
index 7e5f1231c1e..8f27c08f979 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_topo_connection_cache.yml b/.github/workflows/cluster_endtoend_topo_connection_cache.yml
index 191f0957fae..5064e906e04 100644
--- a/.github/workflows/cluster_endtoend_topo_connection_cache.yml
+++ b/.github/workflows/cluster_endtoend_topo_connection_cache.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml b/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml
index b2df5188bce..e4ac7792b85 100644
--- a/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vreplication_basic.yml b/.github/workflows/cluster_endtoend_vreplication_basic.yml
index 95b23e5878a..3dea98a516a 100644
--- a/.github/workflows/cluster_endtoend_vreplication_basic.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_basic.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vreplication_cellalias.yml b/.github/workflows/cluster_endtoend_vreplication_cellalias.yml
index 1abcce30ccd..fac8f73e6c0 100644
--- a/.github/workflows/cluster_endtoend_vreplication_cellalias.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_cellalias.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml b/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml
index 9043f6ce514..88dbbe6d4ee 100644
--- a/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vreplication_multicell.yml b/.github/workflows/cluster_endtoend_vreplication_multicell.yml
index 53228e39be6..35cbcc1b3a5 100644
--- a/.github/workflows/cluster_endtoend_vreplication_multicell.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_multicell.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vreplication_v2.yml b/.github/workflows/cluster_endtoend_vreplication_v2.yml
index 8faacd79721..a74fdc9dc00 100644
--- a/.github/workflows/cluster_endtoend_vreplication_v2.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_v2.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vstream_failover.yml b/.github/workflows/cluster_endtoend_vstream_failover.yml
index b5c68c18bf1..c98d96191d8 100644
--- a/.github/workflows/cluster_endtoend_vstream_failover.yml
+++ b/.github/workflows/cluster_endtoend_vstream_failover.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vstream_stoponreshard_false.yml b/.github/workflows/cluster_endtoend_vstream_stoponreshard_false.yml
index 298ed4972fe..557a7b53f6f 100644
--- a/.github/workflows/cluster_endtoend_vstream_stoponreshard_false.yml
+++ b/.github/workflows/cluster_endtoend_vstream_stoponreshard_false.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vstream_stoponreshard_true.yml b/.github/workflows/cluster_endtoend_vstream_stoponreshard_true.yml
index a7a3957744b..5f997790cf1 100644
--- a/.github/workflows/cluster_endtoend_vstream_stoponreshard_true.yml
+++ b/.github/workflows/cluster_endtoend_vstream_stoponreshard_true.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vstream_with_keyspaces_to_watch.yml b/.github/workflows/cluster_endtoend_vstream_with_keyspaces_to_watch.yml
index d28cacc58d7..861e5726e26 100644
--- a/.github/workflows/cluster_endtoend_vstream_with_keyspaces_to_watch.yml
+++ b/.github/workflows/cluster_endtoend_vstream_with_keyspaces_to_watch.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtbackup.yml b/.github/workflows/cluster_endtoend_vtbackup.yml
index b18c6be59b9..ec9864369fb 100644
--- a/.github/workflows/cluster_endtoend_vtbackup.yml
+++ b/.github/workflows/cluster_endtoend_vtbackup.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml b/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml
index e7e3175d17f..2f1fbe6473b 100644
--- a/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml
+++ b/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml b/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml
index e62f03e8071..fab18531c6d 100644
--- a/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_gen4.yml b/.github/workflows/cluster_endtoend_vtgate_gen4.yml
index df47db0cb5d..201099d56d9 100644
--- a/.github/workflows/cluster_endtoend_vtgate_gen4.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_gen4.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml b/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml
index cf2c7ee4d06..25f8c45d8f4 100644
--- a/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_godriver.yml b/.github/workflows/cluster_endtoend_vtgate_godriver.yml
index addfb984f35..564c0cfeb9f 100644
--- a/.github/workflows/cluster_endtoend_vtgate_godriver.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_godriver.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml b/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml
index 443681aed63..61de9088620 100644
--- a/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_queries.yml b/.github/workflows/cluster_endtoend_vtgate_queries.yml
index 12c7f788809..77a4a56e2cc 100644
--- a/.github/workflows/cluster_endtoend_vtgate_queries.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_queries.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml b/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml
index 6dc05b96360..46e08660957 100644
--- a/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml b/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml
index eea02ca6a1c..5c57c7b81b5 100644
--- a/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_schema.yml b/.github/workflows/cluster_endtoend_vtgate_schema.yml
index b212adff275..123ef1dc0ef 100644
--- a/.github/workflows/cluster_endtoend_vtgate_schema.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_schema.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml b/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml
index 57aa528565d..885bb119da3 100644
--- a/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml b/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml
index 9ebe1185550..27bdda2f587 100644
--- a/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_topo.yml b/.github/workflows/cluster_endtoend_vtgate_topo.yml
index 30251f372e3..586e9b42c2c 100644
--- a/.github/workflows/cluster_endtoend_vtgate_topo.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_topo.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml b/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml
index 99d86d9ba45..ef9f2566f68 100644
--- a/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml b/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml
index 3b5acd850a7..76aba2ceb0d 100644
--- a/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_transaction.yml b/.github/workflows/cluster_endtoend_vtgate_transaction.yml
index 251405c673e..72443859578 100644
--- a/.github/workflows/cluster_endtoend_vtgate_transaction.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_transaction.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_unsharded.yml b/.github/workflows/cluster_endtoend_vtgate_unsharded.yml
index 815b83d2112..2241abecaa2 100644
--- a/.github/workflows/cluster_endtoend_vtgate_unsharded.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_unsharded.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml b/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml
index 4e396915688..257b106264d 100644
--- a/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtgate_vschema.yml b/.github/workflows/cluster_endtoend_vtgate_vschema.yml
index 23eac8c1d97..3e652c776de 100644
--- a/.github/workflows/cluster_endtoend_vtgate_vschema.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_vschema.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtorc.yml b/.github/workflows/cluster_endtoend_vtorc.yml
index 6b5abeebf48..ca3b4104314 100644
--- a/.github/workflows/cluster_endtoend_vtorc.yml
+++ b/.github/workflows/cluster_endtoend_vtorc.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_vtorc_mysql57.yml b/.github/workflows/cluster_endtoend_vtorc_mysql57.yml
index 0243958aa8b..d7564c1ccd2 100644
--- a/.github/workflows/cluster_endtoend_vtorc_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_vtorc_mysql57.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -94,9 +96,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml b/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml
index de0de5e318c..671cbbfbf69 100644
--- a/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml
+++ b/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -83,9 +85,9 @@ jobs:
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/cluster_endtoend_xb_backup.yml b/.github/workflows/cluster_endtoend_xb_backup.yml
index 68519eeca5b..8363a7e36a6 100644
--- a/.github/workflows/cluster_endtoend_xb_backup.yml
+++ b/.github/workflows/cluster_endtoend_xb_backup.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
diff --git a/.github/workflows/cluster_endtoend_xb_backup_mysql57.yml b/.github/workflows/cluster_endtoend_xb_backup_mysql57.yml
index 6c26edfdc9c..f6c24de65af 100644
--- a/.github/workflows/cluster_endtoend_xb_backup_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_xb_backup_mysql57.yml
@@ -51,6 +51,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -66,7 +68,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -98,9 +100,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/cluster_endtoend_xb_recovery.yml b/.github/workflows/cluster_endtoend_xb_recovery.yml
index 25285414f03..962a8462682 100644
--- a/.github/workflows/cluster_endtoend_xb_recovery.yml
+++ b/.github/workflows/cluster_endtoend_xb_recovery.yml
@@ -47,6 +47,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -62,7 +64,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
diff --git a/.github/workflows/cluster_endtoend_xb_recovery_mysql57.yml b/.github/workflows/cluster_endtoend_xb_recovery_mysql57.yml
index 33577c9f5ec..23af0eae5b1 100644
--- a/.github/workflows/cluster_endtoend_xb_recovery_mysql57.yml
+++ b/.github/workflows/cluster_endtoend_xb_recovery_mysql57.yml
@@ -51,6 +51,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -66,7 +68,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -98,9 +100,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/codeql_analysis.yml b/.github/workflows/codeql_analysis.yml
index 29a01de0fa8..5b2a659de9f 100644
--- a/.github/workflows/codeql_analysis.yml
+++ b/.github/workflows/codeql_analysis.yml
@@ -42,7 +42,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Get base dependencies
run: |
@@ -56,8 +56,8 @@ jobs:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Install mysql80
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml
index e22ea18e5cf..ebdc7940d68 100644
--- a/.github/workflows/create_release.yml
+++ b/.github/workflows/create_release.yml
@@ -16,7 +16,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
run: |
diff --git a/.github/workflows/docker_test_cluster_10.yml b/.github/workflows/docker_test_cluster_10.yml
index eebe5783935..20071b1b141 100644
--- a/.github/workflows/docker_test_cluster_10.yml
+++ b/.github/workflows/docker_test_cluster_10.yml
@@ -53,7 +53,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
diff --git a/.github/workflows/docker_test_cluster_25.yml b/.github/workflows/docker_test_cluster_25.yml
index ca5a7ab0c60..8085933d3ec 100644
--- a/.github/workflows/docker_test_cluster_25.yml
+++ b/.github/workflows/docker_test_cluster_25.yml
@@ -53,7 +53,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
diff --git a/.github/workflows/e2e_race.yml b/.github/workflows/e2e_race.yml
index ec644608705..4c46730261e 100644
--- a/.github/workflows/e2e_race.yml
+++ b/.github/workflows/e2e_race.yml
@@ -51,7 +51,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -62,9 +62,9 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/endtoend.yml b/.github/workflows/endtoend.yml
index 905b5d7b75a..cc0d6db22a2 100644
--- a/.github/workflows/endtoend.yml
+++ b/.github/workflows/endtoend.yml
@@ -51,7 +51,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
diff --git a/.github/workflows/local_example.yml b/.github/workflows/local_example.yml
index 0f197f9943d..a0f4d7810c8 100644
--- a/.github/workflows/local_example.yml
+++ b/.github/workflows/local_example.yml
@@ -57,7 +57,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.examples == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.examples == 'true'
@@ -69,9 +69,9 @@ jobs:
run: |
if [ ${{matrix.os}} = "ubuntu-22.04" ]; then
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/region_example.yml b/.github/workflows/region_example.yml
index 1ece70c7f3e..b55a60f26c7 100644
--- a/.github/workflows/region_example.yml
+++ b/.github/workflows/region_example.yml
@@ -57,7 +57,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.examples == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.examples == 'true'
@@ -69,9 +69,9 @@ jobs:
run: |
if [ ${{matrix.os}} = "ubuntu-22.04" ]; then
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/sonar_analysis.yml b/.github/workflows/sonar_analysis.yml
index 785f9bb39e2..778a3fcca91 100644
--- a/.github/workflows/sonar_analysis.yml
+++ b/.github/workflows/sonar_analysis.yml
@@ -12,7 +12,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
run: |
diff --git a/.github/workflows/static_checks_etc.yml b/.github/workflows/static_checks_etc.yml
index f97600801a9..944dcd0453e 100644
--- a/.github/workflows/static_checks_etc.yml
+++ b/.github/workflows/static_checks_etc.yml
@@ -95,12 +95,16 @@ jobs:
- 'changelog/**'
- './go/tools/releases/**'
- '.github/workflows/static_checks_etc.yml'
+ workflows:
+ - '.github/**'
+ - 'Makefile'
+ - 'test/ci_workflow_gen.go'
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && (steps.changes.outputs.go_files == 'true' || steps.changes.outputs.parser_changes == 'true' || steps.changes.outputs.proto_changes == 'true')
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.go_files == 'true'
@@ -212,3 +216,18 @@ jobs:
echo "$output"
echo ""
exit 1
+
+ - name: Check make generate_ci_workflows
+ if: steps.skip-workflow.outputs.skip-workflow == 'false'
+ run: |
+ set -e
+ make generate_ci_workflows
+ output=$(git status -s)
+ if [ -z "${output}" ]; then
+ exit 0
+ fi
+ echo 'Please run `make generate_ci_workflows`, commit and push again.'
+ echo 'Running `make generate_ci_workflows` on CI yields the following changes:'
+ echo "$output"
+ echo ""
+ exit 1
diff --git a/.github/workflows/unit_race.yml b/.github/workflows/unit_race.yml
index 3364a27a7eb..e98fadc85d8 100644
--- a/.github/workflows/unit_race.yml
+++ b/.github/workflows/unit_race.yml
@@ -55,7 +55,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
diff --git a/.github/workflows/unit_test_mysql57.yml b/.github/workflows/unit_test_mysql57.yml
index 4efa80e0230..a81accfc40a 100644
--- a/.github/workflows/unit_test_mysql57.yml
+++ b/.github/workflows/unit_test_mysql57.yml
@@ -61,7 +61,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
@@ -91,10 +91,10 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# mysql57
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/.github/workflows/unit_test_mysql80.yml b/.github/workflows/unit_test_mysql80.yml
index eb85fd4661d..f6d2ee35cf9 100644
--- a/.github/workflows/unit_test_mysql80.yml
+++ b/.github/workflows/unit_test_mysql80.yml
@@ -61,7 +61,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
@@ -91,10 +91,10 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# mysql80
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/.github/workflows/update_golang_version.yml b/.github/workflows/update_golang_version.yml
index 28cfbb42940..35b143a0a2d 100644
--- a/.github/workflows/update_golang_version.yml
+++ b/.github/workflows/update_golang_version.yml
@@ -16,7 +16,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v2
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Check out code
uses: actions/checkout@v3
diff --git a/.github/workflows/upgrade_downgrade_test_backups_e2e.yml b/.github/workflows/upgrade_downgrade_test_backups_e2e.yml
index 8ea4dbd13eb..47039d3f077 100644
--- a/.github/workflows/upgrade_downgrade_test_backups_e2e.yml
+++ b/.github/workflows/upgrade_downgrade_test_backups_e2e.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing - Backups - E2E
+name: Backups - E2E - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -8,33 +8,10 @@ concurrency:
cancel-in-progress: true
jobs:
- get_previous_release:
- if: always()
- name: Get Previous Release - Backups - E2E
- runs-on: ubuntu-22.04
- outputs:
- previous_release: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
-
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-previous-release-ref
- run: |
- previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $previous_release_ref
- echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
-
upgrade_downgrade_test_e2e:
timeout-minutes: 60
- if: always() && needs.get_previous_release.result == 'success'
name: Run Upgrade Downgrade Test - Backups - E2E
runs-on: ubuntu-22.04
- needs:
- - get_previous_release
steps:
- name: Skip CI
@@ -57,6 +34,16 @@ jobs:
- name: Check out commit's code
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ if: steps.skip-workflow.outputs.skip-workflow == 'false'
+ id: output-previous-release-ref
+ run: |
+ previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $previous_release_ref
+ echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
@@ -83,7 +70,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -115,11 +102,11 @@ jobs:
sudo apt-get install percona-xtrabackup-24
# Checkout to the last release of Vitess
- - name: Check out other version's code (${{ needs.get_previous_release.outputs.previous_release }})
+ - name: Check out other version's code (${{ steps.output-previous-release-ref.outputs.previous_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_previous_release.outputs.previous_release }}
+ ref: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
- name: Get dependencies for the last release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
diff --git a/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml b/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml
index 8f1c4275756..718b262e085 100644
--- a/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml
+++ b/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing - Backups - E2E - Next Release
+name: Backups - E2E - Next Release - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,34 +7,14 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing - Backups - E2E - Next Release')
cancel-in-progress: true
-jobs:
- get_next_release:
- if: always()
- name: Get Latest Release - Backups - E2E - Next Release
- runs-on: ubuntu-22.04
- outputs:
- next_release: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
+permissions: read-all
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-next-release-ref
- run: |
- next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $next_release_ref
- echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
+jobs:
upgrade_downgrade_test_e2e:
timeout-minutes: 60
- if: always() && needs.get_next_release.result == 'success'
name: Run Upgrade Downgrade Test - Backups - E2E - Next Release
runs-on: ubuntu-22.04
- needs:
- - get_next_release
steps:
- name: Skip CI
@@ -44,6 +24,18 @@ jobs:
exit 1
fi
+ - name: Check out commit's code
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-next-release-ref
+ run: |
+ next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $next_release_ref
+ echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
+
- name: Check if workflow needs to be skipped
id: skip-workflow
run: |
@@ -51,16 +43,12 @@ jobs:
if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then
skip='true'
fi
- if [[ "${{needs.get_next_release.outputs.next_release}}" == "" ]]; then
+ if [[ "${{steps.output-next-release-ref.outputs.next_release_ref}}" == "" ]]; then
skip='true'
fi
echo Skip ${skip}
echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT
- - name: Check out commit's code
- if: steps.skip-workflow.outputs.skip-workflow == 'false'
- uses: actions/checkout@v3
-
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: frouioui/paths-filter@main
@@ -84,9 +72,9 @@ jobs:
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -115,14 +103,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the next release of Vitess
- - name: Check out other version's code (${{ needs.get_next_release.outputs.next_release }})
+ - name: Check out other version's code (${{ steps.output-next-release-ref.outputs.next_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_next_release.outputs.next_release }}
+ ref: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
- name: Get dependencies for the next release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -134,7 +122,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -154,7 +142,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
@@ -164,8 +152,10 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vttablet
+ rm -f $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-other/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-other/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-other/bin/mysqlctld $PWD/bin/mysqlctld
vttablet --version
# Run test with VTTablet at version N+1 and VTBackup at version N
@@ -184,9 +174,11 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vtbackup $PWD/bin/vttablet
+ rm -f $PWD/bin/vtbackup $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-other/bin/vtbackup $PWD/bin/vtbackup
cp /tmp/vitess-build-current/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-current/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-current/bin/mysqlctld $PWD/bin/mysqlctld
vtbackup --version
vttablet --version
diff --git a/.github/workflows/upgrade_downgrade_test_backups_manual.yml b/.github/workflows/upgrade_downgrade_test_backups_manual.yml
index 3cb404c19dd..e5b73c1a558 100644
--- a/.github/workflows/upgrade_downgrade_test_backups_manual.yml
+++ b/.github/workflows/upgrade_downgrade_test_backups_manual.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing - Backups - Manual
+name: Backups - Manual - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,35 +7,15 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing - Backups - Manual')
cancel-in-progress: true
-jobs:
- get_previous_release:
- if: always()
- name: Get Previous Release - Backups - Manual
- runs-on: ubuntu-22.04
- outputs:
- previous_release: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
+permissions: read-all
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-previous-release-ref
- run: |
- previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $previous_release_ref
- echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
+jobs:
# This job usually execute in ± 20 minutes
upgrade_downgrade_test_manual:
timeout-minutes: 40
- if: always() && (needs.get_previous_release.result == 'success')
name: Run Upgrade Downgrade Test - Backups - Manual
runs-on: ubuntu-22.04
- needs:
- - get_previous_release
steps:
- name: Skip CI
@@ -59,6 +39,16 @@ jobs:
- name: Checkout to commit's code
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-previous-release-ref
+ if: steps.skip-workflow.outputs.skip-workflow == 'false'
+ run: |
+ previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $previous_release_ref
+ echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
@@ -80,12 +70,13 @@ jobs:
- 'config/**'
- 'bootstrap.sh'
- '.github/workflows/upgrade_downgrade_test_backups_manual.yml'
+ - 'examples/**'
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -110,8 +101,8 @@ jobs:
sudo rm -rf /etc/mysql
# Install MySQL 8.0
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -132,14 +123,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the last release of Vitess
- - name: Checkout to the other version's code (${{ needs.get_previous_release.outputs.previous_release }})
+ - name: Checkout to the other version's code (${{ steps.output-previous-release-ref.outputs.previous_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_previous_release.outputs.previous_release }}
+ ref: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
- name: Get dependencies for the last release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -151,7 +142,7 @@ jobs:
timeout-minutes: 5
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -176,7 +167,7 @@ jobs:
timeout-minutes: 5
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
@@ -227,8 +218,10 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vttablet
+ rm -f $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-other/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-other/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-other/bin/mysqlctld $PWD/bin/mysqlctld
vttablet --version
# Starting the tablets again, they will automatically start restoring the last backup.
@@ -275,8 +268,10 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vttablet
+ rm -f $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-current/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-current/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-current/bin/mysqlctld $PWD/bin/mysqlctld
vttablet --version
# Starting the tablets again and restoring the previous backup.
diff --git a/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml b/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml
index 6eafdce2d09..8dd2e9605c1 100644
--- a/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml
+++ b/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing - Backups - Manual - Next Release
+name: Backups - Manual - Next Release - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,35 +7,15 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing - Backups - Manual - Next Release')
cancel-in-progress: true
-jobs:
- get_next_release:
- if: always()
- name: Get Previous Release - Backups - Manual - Next Release
- runs-on: ubuntu-22.04
- outputs:
- next_release: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
+permissions: read-all
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-next-release-ref
- run: |
- next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $next_release_ref
- echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
+jobs:
# This job usually execute in ± 20 minutes
upgrade_downgrade_test_manual:
timeout-minutes: 40
- if: always() && (needs.get_next_release.result == 'success')
name: Run Upgrade Downgrade Test - Backups - Manual - Next Release
runs-on: ubuntu-22.04
- needs:
- - get_next_release
steps:
- name: Skip CI
@@ -45,6 +25,19 @@ jobs:
exit 1
fi
+ # Checkout to this build's commit
+ - name: Checkout to commit's code
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-next-release-ref
+ run: |
+ next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $next_release_ref
+ echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
+
- name: Check if workflow needs to be skipped
id: skip-workflow
run: |
@@ -52,17 +45,12 @@ jobs:
if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then
skip='true'
fi
- if [[ "${{needs.get_next_release.outputs.next_release}}" == "" ]]; then
+ if [[ "${{steps.output-next-release-ref.outputs.next_release_ref}}" == "" ]]; then
skip='true'
fi
echo Skip ${skip}
echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT
- # Checkout to this build's commit
- - name: Checkout to commit's code
- if: steps.skip-workflow.outputs.skip-workflow == 'false'
- uses: actions/checkout@v3
-
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: frouioui/paths-filter@main
@@ -83,12 +71,13 @@ jobs:
- 'config/**'
- 'bootstrap.sh'
- '.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml'
+ - 'examples/**'
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -113,8 +102,8 @@ jobs:
sudo rm -rf /etc/mysql
# Install MySQL 8.0
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -135,14 +124,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the next release of Vitess
- - name: Checkout to the other version's code (${{ needs.get_next_release.outputs.next_release }})
+ - name: Checkout to the other version's code (${{ steps.output-next-release-ref.outputs.next_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_next_release.outputs.next_release }}
+ ref: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
- name: Get dependencies for the next release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -154,7 +143,7 @@ jobs:
timeout-minutes: 5
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -179,7 +168,7 @@ jobs:
timeout-minutes: 5
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
@@ -230,8 +219,10 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vttablet
+ rm -f $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-other/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-other/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-other/bin/mysqlctld $PWD/bin/mysqlctld
vttablet --version
# Starting the tablets again, they will automatically start restoring the last backup.
@@ -278,8 +269,10 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vttablet
+ rm -f $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-current/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-current/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-current/bin/mysqlctld $PWD/bin/mysqlctld
vttablet --version
# Starting the tablets again and restoring the next backup.
diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml b/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml
index 33680c28f3d..d985e7ac8ae 100644
--- a/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml
+++ b/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing Query Serving (Queries)
+name: Query Serving (Queries) - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,36 +7,16 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing Query Serving (Queries)')
cancel-in-progress: true
+permissions: read-all
+
# This test ensures that our end-to-end tests work using Vitess components
# (vtgate, vttablet, etc) built on different versions.
jobs:
- get_previous_release:
- if: always()
- name: Get Previous Release - Query Serving (Queries)
- runs-on: ubuntu-22.04
- outputs:
- previous_release: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
-
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-previous-release-ref
- run: |
- previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $previous_release_ref
- echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
upgrade_downgrade_test:
- if: always() && (needs.get_previous_release.result == 'success')
name: Run Upgrade Downgrade Test - Query Serving (Queries)
runs-on: ubuntu-22.04
- needs:
- - get_previous_release
steps:
- name: Skip CI
@@ -59,6 +39,16 @@ jobs:
- name: Check out commit's code
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-previous-release-ref
+ if: steps.skip-workflow.outputs.skip-workflow == 'false'
+ run: |
+ previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $previous_release_ref
+ echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
@@ -83,9 +73,9 @@ jobs:
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -109,8 +99,8 @@ jobs:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Install mysql80
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -130,14 +120,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the last release of Vitess
- - name: Check out other version's code (${{ needs.get_previous_release.outputs.previous_release }})
+ - name: Check out other version's code (${{ steps.output-previous-release-ref.outputs.previous_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_previous_release.outputs.previous_release }}
+ ref: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
- name: Get dependencies for the last release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -149,7 +139,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -169,7 +159,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
@@ -209,9 +199,11 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vtgate $PWD/bin/vttablet
+ rm -f $PWD/bin/vtgate $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-current/bin/vtgate $PWD/bin/vtgate
cp /tmp/vitess-build-other/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-other/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-other/bin/mysqlctld $PWD/bin/mysqlctld
vtgate --version
vttablet --version
diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml b/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml
index c6add37645c..37c00e8af87 100644
--- a/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml
+++ b/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing Query Serving (Queries) Next Release
+name: Query Serving (Queries) Next Release - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,36 +7,16 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing Query Serving (Queries) Next Release')
cancel-in-progress: true
+permissions: read-all
+
# This test ensures that our end-to-end tests work using Vitess components
# (vtgate, vttablet, etc) built on different versions.
jobs:
- get_next_release:
- if: always()
- name: Get Latest Release - Query Serving (Queries) Next Release
- runs-on: ubuntu-22.04
- outputs:
- next_release: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
-
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-next-release-ref
- run: |
- next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $next_release_ref
- echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
upgrade_downgrade_test:
- if: always() && (needs.get_next_release.result == 'success')
name: Run Upgrade Downgrade Test - Query Serving (Queries) Next Release
runs-on: ubuntu-22.04
- needs:
- - get_next_release
steps:
- name: Skip CI
@@ -46,6 +26,18 @@ jobs:
exit 1
fi
+ - name: Check out commit's code
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-next-release-ref
+ run: |
+ next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $next_release_ref
+ echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
+
- name: Check if workflow needs to be skipped
id: skip-workflow
run: |
@@ -53,16 +45,12 @@ jobs:
if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then
skip='true'
fi
- if [[ "${{needs.get_next_release.outputs.next_release}}" == "" ]]; then
+ if [[ "${{steps.output-next-release-ref.outputs.next_release_ref}}" == "" ]]; then
skip='true'
fi
echo Skip ${skip}
echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT
- - name: Check out commit's code
- if: steps.skip-workflow.outputs.skip-workflow == 'false'
- uses: actions/checkout@v3
-
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: frouioui/paths-filter@main
@@ -86,9 +74,9 @@ jobs:
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -112,8 +100,8 @@ jobs:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Install mysql80
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -133,14 +121,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the next release of Vitess
- - name: Check out other version's code (${{ needs.get_next_release.outputs.next_release }})
+ - name: Check out other version's code (${{ steps.output-next-release-ref.outputs.next_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_next_release.outputs.next_release }}
+ ref: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
- name: Get dependencies for the next release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -152,7 +140,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -172,7 +160,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
@@ -212,9 +200,11 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vtgate $PWD/bin/vttablet
+ rm -f $PWD/bin/vtgate $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-current/bin/vtgate $PWD/bin/vtgate
cp /tmp/vitess-build-other/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-other/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-other/bin/mysqlctld $PWD/bin/mysqlctld
vtgate --version
vttablet --version
diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml b/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml
index 03a809d178d..82b6a072dd6 100644
--- a/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml
+++ b/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing Query Serving (Schema)
+name: Query Serving (Schema) - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,36 +7,16 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing Query Serving (Schema)')
cancel-in-progress: true
+permissions: read-all
+
# This test ensures that our end-to-end tests work using Vitess components
# (vtgate, vttablet, etc) built on different versions.
jobs:
- get_previous_release:
- if: always()
- name: Get Previous Release - Query Serving (Schema)
- runs-on: ubuntu-22.04
- outputs:
- previous_release: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
-
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-previous-release-ref
- run: |
- previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $previous_release_ref
- echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
upgrade_downgrade_test:
- if: always() && (needs.get_previous_release.result == 'success')
name: Run Upgrade Downgrade Test - Query Serving (Schema)
runs-on: ubuntu-22.04
- needs:
- - get_previous_release
steps:
- name: Skip CI
@@ -59,6 +39,16 @@ jobs:
- name: Check out commit's code
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-previous-release-ref
+ if: steps.skip-workflow.outputs.skip-workflow == 'false'
+ run: |
+ previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $previous_release_ref
+ echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
@@ -83,9 +73,9 @@ jobs:
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -109,8 +99,8 @@ jobs:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Install mysql80
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -130,14 +120,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the last release of Vitess
- - name: Check out other version's code (${{ needs.get_previous_release.outputs.previous_release }})
+ - name: Check out other version's code (${{ steps.output-previous-release-ref.outputs.previous_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_previous_release.outputs.previous_release }}
+ ref: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
- name: Get dependencies for the last release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -149,7 +139,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -169,7 +159,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
@@ -209,9 +199,11 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vtgate $PWD/bin/vttablet
+ rm -f $PWD/bin/vtgate $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-current/bin/vtgate $PWD/bin/vtgate
cp /tmp/vitess-build-other/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-other/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-other/bin/mysqlctld $PWD/bin/mysqlctld
vtgate --version
vttablet --version
diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml b/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml
index 8805c43c66f..b0cdd022112 100644
--- a/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml
+++ b/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing Query Serving (Schema) Next Release
+name: Query Serving (Schema) Next Release - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,36 +7,16 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing Query Serving (Schema) Next Release')
cancel-in-progress: true
+permissions: read-all
+
# This test ensures that our end-to-end tests work using Vitess components
# (vtgate, vttablet, etc) built on different versions.
jobs:
- get_next_release:
- if: always()
- name: Get Latest Release - Query Serving (Schema) Next Release
- runs-on: ubuntu-22.04
- outputs:
- next_release: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
-
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-next-release-ref
- run: |
- next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $next_release_ref
- echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
upgrade_downgrade_test:
- if: always() && (needs.get_next_release.result == 'success')
name: Run Upgrade Downgrade Test - Query Serving (Schema) Next Release
runs-on: ubuntu-22.04
- needs:
- - get_next_release
steps:
- name: Skip CI
@@ -46,6 +26,18 @@ jobs:
exit 1
fi
+ - name: Check out commit's code
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-next-release-ref
+ run: |
+ next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $next_release_ref
+ echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
+
- name: Check if workflow needs to be skipped
id: skip-workflow
run: |
@@ -53,16 +45,12 @@ jobs:
if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then
skip='true'
fi
- if [[ "${{needs.get_next_release.outputs.next_release}}" == "" ]]; then
+ if [[ "${{steps.output-next-release-ref.outputs.next_release_ref}}" == "" ]]; then
skip='true'
fi
echo Skip ${skip}
echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT
- - name: Check out commit's code
- if: steps.skip-workflow.outputs.skip-workflow == 'false'
- uses: actions/checkout@v3
-
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: frouioui/paths-filter@main
@@ -86,9 +74,9 @@ jobs:
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -112,8 +100,8 @@ jobs:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Install mysql80
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -133,14 +121,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the next release of Vitess
- - name: Check out other version's code (${{ needs.get_next_release.outputs.next_release }})
+ - name: Check out other version's code (${{ steps.output-next-release-ref.outputs.next_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_next_release.outputs.next_release }}
+ ref: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
- name: Get dependencies for the next release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -152,7 +140,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -172,7 +160,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
@@ -212,9 +200,11 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vtgate $PWD/bin/vttablet
+ rm -f $PWD/bin/vtgate $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-current/bin/vtgate $PWD/bin/vtgate
cp /tmp/vitess-build-other/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-other/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-other/bin/mysqlctld $PWD/bin/mysqlctld
vtgate --version
vttablet --version
diff --git a/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml b/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml
index ddee574be82..ea04bac5656 100644
--- a/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml
+++ b/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing Reparent New Vtctl
+name: Reparent New Vtctl - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,36 +7,16 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing Reparent New Vtctl')
cancel-in-progress: true
+permissions: read-all
+
# This test ensures that our end-to-end tests work using Vitess components
# (vtctl, vttablet, etc) built on different versions.
jobs:
- get_next_release:
- if: always()
- name: Get Latest Release - Reparent New Vtctl
- runs-on: ubuntu-22.04
- outputs:
- next_release: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
-
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-next-release-ref
- run: |
- next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $next_release_ref
- echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
upgrade_downgrade_test:
- if: always() && (needs.get_next_release.result == 'success')
name: Run Upgrade Downgrade Test - Reparent New Vtctl
runs-on: ubuntu-22.04
- needs:
- - get_next_release
steps:
- name: Skip CI
@@ -46,6 +26,18 @@ jobs:
exit 1
fi
+ - name: Check out commit's code
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-next-release-ref
+ run: |
+ next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $next_release_ref
+ echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
+
- name: Check if workflow needs to be skipped
id: skip-workflow
run: |
@@ -53,16 +45,12 @@ jobs:
if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then
skip='true'
fi
- if [[ "${{needs.get_next_release.outputs.next_release}}" == "" ]]; then
+ if [[ "${{steps.output-next-release-ref.outputs.next_release_ref}}" == "" ]]; then
skip='true'
fi
echo Skip ${skip}
echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT
- - name: Check out commit's code
- if: steps.skip-workflow.outputs.skip-workflow == 'false'
- uses: actions/checkout@v3
-
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: frouioui/paths-filter@main
@@ -86,9 +74,9 @@ jobs:
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -112,8 +100,8 @@ jobs:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Install mysql80
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -133,14 +121,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the next release of Vitess
- - name: Check out other version's code (${{ needs.get_next_release.outputs.next_release }})
+ - name: Check out other version's code (${{ steps.output-next-release-ref.outputs.next_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_next_release.outputs.next_release }}
+ ref: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
- name: Get dependencies for the next release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -152,7 +140,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -172,7 +160,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
diff --git a/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml b/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml
index c8d47834b6e..cc8e821d218 100644
--- a/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml
+++ b/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing Reparent New VTTablet
+name: Reparent New VTTablet - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,36 +7,16 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing Reparent New VTTablet')
cancel-in-progress: true
+permissions: read-all
+
# This test ensures that our end-to-end tests work using Vitess components
# (vtctl, vttablet, etc) built on different versions.
jobs:
- get_next_release:
- if: always()
- name: Get Latest Release - Reparent New VTTablet
- runs-on: ubuntu-22.04
- outputs:
- next_release: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
-
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-next-release-ref
- run: |
- next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $next_release_ref
- echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
upgrade_downgrade_test:
- if: always() && (needs.get_next_release.result == 'success')
name: Run Upgrade Downgrade Test - Reparent New VTTablet
runs-on: ubuntu-22.04
- needs:
- - get_next_release
steps:
- name: Skip CI
@@ -46,6 +26,18 @@ jobs:
exit 1
fi
+ - name: Check out commit's code
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-next-release-ref
+ run: |
+ next_release_ref=$(./tools/get_next_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $next_release_ref
+ echo "next_release_ref=${next_release_ref}" >> $GITHUB_OUTPUT
+
- name: Check if workflow needs to be skipped
id: skip-workflow
run: |
@@ -53,16 +45,12 @@ jobs:
if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then
skip='true'
fi
- if [[ "${{needs.get_next_release.outputs.next_release}}" == "" ]]; then
+ if [[ "${{steps.output-next-release-ref.outputs.next_release_ref}}" == "" ]]; then
skip='true'
fi
echo Skip ${skip}
echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT
- - name: Check out commit's code
- if: steps.skip-workflow.outputs.skip-workflow == 'false'
- uses: actions/checkout@v3
-
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: frouioui/paths-filter@main
@@ -86,9 +74,9 @@ jobs:
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -112,8 +100,8 @@ jobs:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Install mysql80
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -133,14 +121,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the next release of Vitess
- - name: Check out other version's code (${{ needs.get_next_release.outputs.next_release }})
+ - name: Check out other version's code (${{ steps.output-next-release-ref.outputs.next_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_next_release.outputs.next_release }}
+ ref: ${{ steps.output-next-release-ref.outputs.next_release_ref }}
- name: Get dependencies for the next release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -152,7 +140,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -172,7 +160,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
@@ -182,8 +170,10 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vttablet
+ rm -f $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-other/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-other/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-other/bin/mysqlctld $PWD/bin/mysqlctld
vtctl --version
vttablet --version
diff --git a/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml b/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml
index 44ed9469a65..196aec78a24 100644
--- a/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml
+++ b/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing Reparent Old Vtctl
+name: Reparent Old Vtctl - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,36 +7,16 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing Reparent Old Vtctl')
cancel-in-progress: true
+permissions: read-all
+
# This test ensures that our end-to-end tests work using Vitess components
# (vtctl, vttablet, etc) built on different versions.
jobs:
- get_previous_release:
- if: always()
- name: Get Previous Release - Reparent Old Vtctl
- runs-on: ubuntu-22.04
- outputs:
- previous_release: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
-
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-previous-release-ref
- run: |
- previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $previous_release_ref
- echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
upgrade_downgrade_test:
- if: always() && (needs.get_previous_release.result == 'success')
name: Run Upgrade Downgrade Test - Reparent Old Vtctl
runs-on: ubuntu-22.04
- needs:
- - get_previous_release
steps:
- name: Skip CI
@@ -59,6 +39,16 @@ jobs:
- name: Check out commit's code
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-previous-release-ref
+ if: steps.skip-workflow.outputs.skip-workflow == 'false'
+ run: |
+ previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $previous_release_ref
+ echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
@@ -83,9 +73,9 @@ jobs:
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -109,8 +99,8 @@ jobs:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Install mysql80
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -130,14 +120,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the last release of Vitess
- - name: Check out other version's code (${{ needs.get_previous_release.outputs.previous_release }})
+ - name: Check out other version's code (${{ steps.output-previous-release-ref.outputs.previous_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_previous_release.outputs.previous_release }}
+ ref: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
- name: Get dependencies for the last release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -149,7 +139,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -169,7 +159,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
diff --git a/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml b/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml
index dda397c2430..7b6171a8b62 100644
--- a/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml
+++ b/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml
@@ -1,4 +1,4 @@
-name: Upgrade Downgrade Testing Reparent Old VTTablet
+name: Reparent Old VTTablet - Upgrade Downgrade Testing
on:
push:
pull_request:
@@ -7,36 +7,16 @@ concurrency:
group: format('{0}-{1}', ${{ github.ref }}, 'Upgrade Downgrade Testing Reparent Old VTTablet')
cancel-in-progress: true
+permissions: read-all
+
# This test ensures that our end-to-end tests work using Vitess components
# (vtctl, vttablet, etc) built on different versions.
jobs:
- get_previous_release:
- if: always()
- name: Get Previous Release - Reparent Old VTTablet
- runs-on: ubuntu-22.04
- outputs:
- previous_release: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
-
- steps:
- - name: Check out to HEAD
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - name: Set output with latest release branch
- id: output-previous-release-ref
- run: |
- previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
- echo $previous_release_ref
- echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
upgrade_downgrade_test:
- if: always() && (needs.get_previous_release.result == 'success')
name: Run Upgrade Downgrade Test - Reparent Old VTTablet
runs-on: ubuntu-22.04
- needs:
- - get_previous_release
steps:
- name: Skip CI
@@ -59,6 +39,16 @@ jobs:
- name: Check out commit's code
if: steps.skip-workflow.outputs.skip-workflow == 'false'
uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - name: Set output with latest release branch
+ id: output-previous-release-ref
+ if: steps.skip-workflow.outputs.skip-workflow == 'false'
+ run: |
+ previous_release_ref=$(./tools/get_previous_release.sh ${{github.base_ref}} ${{github.ref}})
+ echo $previous_release_ref
+ echo "previous_release_ref=${previous_release_ref}" >> $GITHUB_OUTPUT
- name: Check for changes in relevant files
if: steps.skip-workflow.outputs.skip-workflow == 'false'
@@ -83,9 +73,9 @@ jobs:
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v4
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -109,8 +99,8 @@ jobs:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Install mysql80
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
@@ -130,14 +120,14 @@ jobs:
sudo apt-get install -y gnupg2
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
- sudo apt-get install percona-xtrabackup-24
+ sudo apt-get install -y percona-xtrabackup-24
# Checkout to the last release of Vitess
- - name: Check out other version's code (${{ needs.get_previous_release.outputs.previous_release }})
+ - name: Check out other version's code (${{ steps.output-previous-release-ref.outputs.previous_release_ref }})
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/checkout@v3
with:
- ref: ${{ needs.get_previous_release.outputs.previous_release }}
+ ref: ${{ steps.output-previous-release-ref.outputs.previous_release_ref }}
- name: Get dependencies for the last release
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -149,7 +139,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-other/
cp -R bin /tmp/vitess-build-other/
rm -Rf bin/*
@@ -169,7 +159,7 @@ jobs:
timeout-minutes: 10
run: |
source build.env
- make build
+ NOVTADMINBUILD=1 make build
mkdir -p /tmp/vitess-build-current/
cp -R bin /tmp/vitess-build-current/
@@ -179,8 +169,10 @@ jobs:
run: |
source build.env
- rm -f $PWD/bin/vttablet
+ rm -f $PWD/bin/vttablet $PWD/bin/mysqlctl $PWD/bin/mysqlctld
cp /tmp/vitess-build-other/bin/vttablet $PWD/bin/vttablet
+ cp /tmp/vitess-build-other/bin/mysqlctl $PWD/bin/mysqlctl
+ cp /tmp/vitess-build-other/bin/mysqlctld $PWD/bin/mysqlctld
vtctl --version
vttablet --version
diff --git a/Makefile b/Makefile
index e0f3409aa06..500f6142716 100644
--- a/Makefile
+++ b/Makefile
@@ -275,7 +275,7 @@ $(PROTO_GO_OUTS): minimaltools install_protoc-gen-go proto/*.proto
# This rule builds the bootstrap images for all flavors.
DOCKER_IMAGES_FOR_TEST = mysql57 mysql80 percona57 percona80
DOCKER_IMAGES = common $(DOCKER_IMAGES_FOR_TEST)
-BOOTSTRAP_VERSION=14.10
+BOOTSTRAP_VERSION=14.12
ensure_bootstrap_version:
find docker/ -type f -exec sed -i "s/^\(ARG bootstrap_version\)=.*/\1=${BOOTSTRAP_VERSION}/" {} \;
sed -i 's/\(^.*flag.String(\"bootstrap-version\",\) *\"[^\"]\+\"/\1 \"${BOOTSTRAP_VERSION}\"/' test.go
diff --git a/build.env b/build.env
index 74636112f2f..acd9b7278ae 100755
--- a/build.env
+++ b/build.env
@@ -17,7 +17,7 @@
source ./tools/shell_functions.inc
go version >/dev/null 2>&1 || fail "Go is not installed or is not in \$PATH. See https://vitess.io/contributing/build-from-source for install instructions."
-goversion_min 1.20.11 || echo "Go version reported: `go version`. Version 1.20.11+ recommended. See https://vitess.io/contributing/build-from-source for install instructions."
+goversion_min 1.20.13 || echo "Go version reported: `go version`. Version 1.20.13+ recommended. See https://vitess.io/contributing/build-from-source for install instructions."
mkdir -p dist
mkdir -p bin
diff --git a/changelog/16.0/16.0.7/changelog.md b/changelog/16.0/16.0.7/changelog.md
new file mode 100644
index 00000000000..d4565e2f9ba
--- /dev/null
+++ b/changelog/16.0/16.0.7/changelog.md
@@ -0,0 +1,42 @@
+# Changelog of Vitess v16.0.7
+
+### Bug fixes
+#### Build/CI
+ * [release-16.0] Update create_release.sh (#14492) [#14514](https://github.com/vitessio/vitess/pull/14514)
+#### Cluster management
+ * [release-16.0] Fix Panic in PRS due to a missing nil check (#14656) [#14674](https://github.com/vitessio/vitess/pull/14674)
+#### Query Serving
+ * [release-16.0] expression rewriting: enable more rewrites and limit CNF rewrites (#14560) [#14574](https://github.com/vitessio/vitess/pull/14574)
+ * [release-16.0] fix concurrency on stream execute engine primitives (#14586) [#14590](https://github.com/vitessio/vitess/pull/14590)
+ * [16.0] bug fix: stop all kinds of expressions from cnf-exploding [#14595](https://github.com/vitessio/vitess/pull/14595)
+ * [release-16.0] tabletserver: do not consolidate streams on primary tablet when consolidator mode is `notOnPrimary` (#14332) [#14683](https://github.com/vitessio/vitess/pull/14683)
+#### VReplication
+ * Revert "[release-16.0] Replace use of `WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS` with `WAIT_FOR_EXECUTED_GTID_SET` (#14612)" [#14743](https://github.com/vitessio/vitess/pull/14743)
+ * [release-16.0] VReplication: Update singular workflow in traffic switcher (#14826) [#14827](https://github.com/vitessio/vitess/pull/14827)
+### CI/Build
+#### Build/CI
+ * [release-16.0] Update MySQL apt package and GPG signature (#14785) [#14790](https://github.com/vitessio/vitess/pull/14790)
+#### Docker
+ * [release-16.0] Build and push Docker Images from GitHub Actions [#14513](https://github.com/vitessio/vitess/pull/14513)
+#### General
+ * [release-16.0] Upgrade the Golang version to `go1.20.12` [#14691](https://github.com/vitessio/vitess/pull/14691)
+### Dependabot
+#### General
+ * [release-16.0] build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#14814) [#14818](https://github.com/vitessio/vitess/pull/14818)
+### Enhancement
+#### Build/CI
+ * [release-16.0] Add step to static check to ensure consistency of GHA workflows (#14724) [#14725](https://github.com/vitessio/vitess/pull/14725)
+### Internal Cleanup
+#### TabletManager
+ * [release-16.0] Replace use of `WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS` with `WAIT_FOR_EXECUTED_GTID_SET` (#14612) [#14620](https://github.com/vitessio/vitess/pull/14620)
+### Performance
+#### Query Serving
+ * [release-16.0] vindexes: fix pooled collator buffer memory leak (#14621) [#14622](https://github.com/vitessio/vitess/pull/14622)
+### Release
+#### General
+ * [release-16.0] Code Freeze for `v16.0.7` [#14808](https://github.com/vitessio/vitess/pull/14808)
+### Testing
+#### Backup and Restore
+ * [release-16.0] Add a retry to remove the vttablet directory during upgrade/downgrade backup tests (#14753) [#14756](https://github.com/vitessio/vitess/pull/14756)
+ * [release-16.0] Backup flaky test [#14819](https://github.com/vitessio/vitess/pull/14819)
+
diff --git a/changelog/16.0/16.0.7/release_notes.md b/changelog/16.0/16.0.7/release_notes.md
new file mode 100644
index 00000000000..4a2b5703d9d
--- /dev/null
+++ b/changelog/16.0/16.0.7/release_notes.md
@@ -0,0 +1,7 @@
+# Release of Vitess v16.0.7
+The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/16.0/16.0.7/changelog.md).
+
+The release includes 18 merged Pull Requests.
+
+Thanks to all our contributors: @GuptaManan100, @app/github-actions, @app/vitess-bot, @deepthi, @frouioui, @harshit-gangal, @maxenglander, @shlomi-noach, @systay
+
diff --git a/changelog/16.0/16.0.8/summary.md b/changelog/16.0/16.0.8/summary.md
new file mode 100644
index 00000000000..947aabd3f68
--- /dev/null
+++ b/changelog/16.0/16.0.8/summary.md
@@ -0,0 +1,25 @@
+## Summary
+
+### Table of Contents
+
+- **[Major Changes](#major-changes)**
+ - **[Breaking Changes](#breaking-changes)**
+ - [ExecuteFetchAsDBA rejects multi-statement SQL](#execute-fetch-as-dba-reject-multi)
+
+## Major Changes
+
+### Breaking Changes
+
+#### ExecuteFetchAsDBA rejects multi-statement SQL
+
+`vtctldclient ExecuteFetchAsDBA` (and similarly the `vtctl` and `vtctlclient` commands) now reject multi-statement SQL with error.
+
+For example, `vtctldclient ExecuteFetchAsDBA my-tablet "stop replica; change replication source to auto_position=1; start replica` will return an error, without attempting to execute any of these queries.
+
+Previously, `ExecuteFetchAsDBA` silently accepted multi statement SQL. It would (attempt to) execute all of them, but:
+
+- It would only indicate error for the first statement. Errors on 2nd, 3rd, ... statements were silently ignored.
+- It would not consume the result sets of the 2nd, 3rd, ... statements. It would then return the used connection to the pool in a dirty state. Any further query that happens to take that connection out of the pool could get unexpected results.
+- As another side effect, multi-statement schema changes would cause schema to be reloaded with only the first change, leaving the cached schema inconsistent with the underlying database.
+
+`ExecuteFetchAsDBA` does allow a specific use case of multi-statement SQL, which is where all statements are in the form of `CREATE TABLE` or `CREATE VIEW`. This is to support a common pattern of schema initialization.
diff --git a/changelog/16.0/README.md b/changelog/16.0/README.md
index 2b25b22c476..49840b049bb 100644
--- a/changelog/16.0/README.md
+++ b/changelog/16.0/README.md
@@ -1,5 +1,11 @@
## v16.0
The dedicated team for this release can be found [here](team.md).
+* **[16.0.8](16.0.8)**
+
+* **[16.0.7](16.0.7)**
+ * [Changelog](16.0.7/changelog.md)
+ * [Release Notes](16.0.7/release_notes.md)
+
* **[16.0.6](16.0.6)**
* [Changelog](16.0.6/changelog.md)
* [Release Notes](16.0.6/release_notes.md)
diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile
index 71e81fc79e4..3953d98a613 100644
--- a/docker/base/Dockerfile
+++ b/docker/base/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql80"
FROM "${image}"
diff --git a/docker/base/Dockerfile.mysql57 b/docker/base/Dockerfile.mysql57
index 6b6576dfa49..d98113a41d9 100644
--- a/docker/base/Dockerfile.mysql57
+++ b/docker/base/Dockerfile.mysql57
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql57"
FROM "${image}"
diff --git a/docker/base/Dockerfile.percona57 b/docker/base/Dockerfile.percona57
index 119e2f74d9c..276730adec5 100644
--- a/docker/base/Dockerfile.percona57
+++ b/docker/base/Dockerfile.percona57
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-percona57"
FROM "${image}"
diff --git a/docker/base/Dockerfile.percona80 b/docker/base/Dockerfile.percona80
index 71dcbb21872..e9dab77031a 100644
--- a/docker/base/Dockerfile.percona80
+++ b/docker/base/Dockerfile.percona80
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-percona80"
FROM "${image}"
diff --git a/docker/bootstrap/CHANGELOG.md b/docker/bootstrap/CHANGELOG.md
index cf1c815b979..bf28da4c1f2 100644
--- a/docker/bootstrap/CHANGELOG.md
+++ b/docker/bootstrap/CHANGELOG.md
@@ -92,4 +92,12 @@ List of changes between bootstrap image versions.
## [14.10] - 2023-11-08
### Changes
-- Update build to golang 1.20.11
\ No newline at end of file
+- Update build to golang 1.20.11
+
+## [14.11] - 2023-12-06
+### Changes
+- Update build to golang 1.20.12
+
+## [14.12] - 2024-01-10
+### Changes
+- Update build to golang 1.20.13
\ No newline at end of file
diff --git a/docker/bootstrap/Dockerfile.common b/docker/bootstrap/Dockerfile.common
index d3128b45054..c97cfb72f4b 100644
--- a/docker/bootstrap/Dockerfile.common
+++ b/docker/bootstrap/Dockerfile.common
@@ -1,4 +1,4 @@
-FROM --platform=linux/amd64 golang:1.20.11-bullseye
+FROM --platform=linux/amd64 golang:1.20.13-bullseye
# Install Vitess build dependencies
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
diff --git a/docker/bootstrap/Dockerfile.mysql57 b/docker/bootstrap/Dockerfile.mysql57
index 4e9b335ddac..4d79be9d3ec 100644
--- a/docker/bootstrap/Dockerfile.mysql57
+++ b/docker/bootstrap/Dockerfile.mysql57
@@ -5,7 +5,7 @@ FROM --platform=linux/amd64 "${image}"
# Install MySQL 5.7
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg dirmngr ca-certificates && \
- for i in $(seq 1 10); do apt-key adv --no-tty --recv-keys --keyserver keyserver.ubuntu.com 467B942D3A79BD29 && break; done && \
+ for i in $(seq 1 10); do apt-key adv --no-tty --recv-keys --keyserver keyserver.ubuntu.com A8D3785C && break; done && \
add-apt-repository 'deb http://repo.mysql.com/apt/debian/ buster mysql-5.7' && \
for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keyserver.ubuntu.com --recv-keys 9334A25F8507EFA5 && break; done && \
echo 'deb http://repo.percona.com/apt buster main' > /etc/apt/sources.list.d/percona.list && \
diff --git a/docker/bootstrap/Dockerfile.mysql80 b/docker/bootstrap/Dockerfile.mysql80
index dbb16bdbebc..4de58b4df73 100644
--- a/docker/bootstrap/Dockerfile.mysql80
+++ b/docker/bootstrap/Dockerfile.mysql80
@@ -5,7 +5,7 @@ FROM --platform=linux/amd64 "${image}"
# Install MySQL 8.0
RUN for i in $(seq 1 10); do apt-key adv --no-tty --recv-keys --keyserver keyserver.ubuntu.com 8C718D3B5072E1F5 && break; done && \
- for i in $(seq 1 10); do apt-key adv --no-tty --recv-keys --keyserver keyserver.ubuntu.com 467B942D3A79BD29 && break; done && \
+ for i in $(seq 1 10); do apt-key adv --no-tty --recv-keys --keyserver keyserver.ubuntu.com A8D3785C && break; done && \
add-apt-repository 'deb http://repo.mysql.com/apt/debian/ buster mysql-8.0' && \
for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keyserver.ubuntu.com --recv-keys 9334A25F8507EFA5 && break; done && \
echo 'deb http://repo.percona.com/apt bullseye main' > /etc/apt/sources.list.d/percona.list && \
diff --git a/docker/lite/Dockerfile.mysql57 b/docker/lite/Dockerfile.mysql57
index 0bd1efb25e5..135ad81972b 100644
--- a/docker/lite/Dockerfile.mysql57
+++ b/docker/lite/Dockerfile.mysql57
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql57"
FROM "${image}" AS builder
diff --git a/docker/lite/Dockerfile.mysql80 b/docker/lite/Dockerfile.mysql80
index a09b6a07a19..b22d1019363 100644
--- a/docker/lite/Dockerfile.mysql80
+++ b/docker/lite/Dockerfile.mysql80
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql80"
FROM "${image}" AS builder
diff --git a/docker/lite/Dockerfile.percona57 b/docker/lite/Dockerfile.percona57
index d22356ca209..f2d83cc03de 100644
--- a/docker/lite/Dockerfile.percona57
+++ b/docker/lite/Dockerfile.percona57
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-percona57"
FROM "${image}" AS builder
diff --git a/docker/lite/Dockerfile.percona80 b/docker/lite/Dockerfile.percona80
index ef5905bfcbe..37c134206d4 100644
--- a/docker/lite/Dockerfile.percona80
+++ b/docker/lite/Dockerfile.percona80
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-percona80"
FROM "${image}" AS builder
diff --git a/docker/lite/Dockerfile.testing b/docker/lite/Dockerfile.testing
index e445661f0d0..870b2042788 100644
--- a/docker/lite/Dockerfile.testing
+++ b/docker/lite/Dockerfile.testing
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql57"
FROM "${image}" AS builder
diff --git a/docker/lite/Dockerfile.ubi7.mysql57 b/docker/lite/Dockerfile.ubi7.mysql57
index b417f310de3..ae3722f9f55 100644
--- a/docker/lite/Dockerfile.ubi7.mysql57
+++ b/docker/lite/Dockerfile.ubi7.mysql57
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql57"
FROM "${image}" AS builder
diff --git a/docker/lite/Dockerfile.ubi7.mysql80 b/docker/lite/Dockerfile.ubi7.mysql80
index 66c8417ee7d..c9b5f93542b 100644
--- a/docker/lite/Dockerfile.ubi7.mysql80
+++ b/docker/lite/Dockerfile.ubi7.mysql80
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql80"
FROM "${image}" AS builder
diff --git a/docker/lite/Dockerfile.ubi7.percona57 b/docker/lite/Dockerfile.ubi7.percona57
index 93d126db29a..0e7556877bf 100644
--- a/docker/lite/Dockerfile.ubi7.percona57
+++ b/docker/lite/Dockerfile.ubi7.percona57
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-percona57"
FROM "${image}" AS builder
diff --git a/docker/lite/Dockerfile.ubi7.percona80 b/docker/lite/Dockerfile.ubi7.percona80
index a6cdf6eb309..3bfff739fa1 100644
--- a/docker/lite/Dockerfile.ubi7.percona80
+++ b/docker/lite/Dockerfile.ubi7.percona80
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-percona80"
FROM "${image}" AS builder
diff --git a/docker/lite/Dockerfile.ubi8.arm64.mysql80 b/docker/lite/Dockerfile.ubi8.arm64.mysql80
index 51893110e21..ffabb13260c 100644
--- a/docker/lite/Dockerfile.ubi8.arm64.mysql80
+++ b/docker/lite/Dockerfile.ubi8.arm64.mysql80
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql80"
FROM "${image}" AS builder
@@ -39,13 +39,13 @@ FROM registry.access.redhat.com/ubi8/ubi:latest
RUN rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
RUN mkdir /tmp/gpg && chmod 700 /tmp/gpg && export GNUPGHOME=/tmp/gpg \
&& yum install -y --setopt=alwaysprompt=no gnupg \
- && ( gpg --keyserver keyserver.ubuntu.com --recv-keys 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A 4D1BB29D63D98E422B2113B19334A25F8507EFA5 99DB70FAE1D7CE227FB6488205B555B38483C65D 3A79BD29 A4A9406876FCBD3C456770C88C718D3B5072E1F5 94E279EB8D8F25B21810ADF121EA45AB2F86D6A1 ) \
+ && ( gpg --keyserver keyserver.ubuntu.com --recv-keys 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A 4D1BB29D63D98E422B2113B19334A25F8507EFA5 99DB70FAE1D7CE227FB6488205B555B38483C65D A8D3785C A4A9406876FCBD3C456770C88C718D3B5072E1F5 94E279EB8D8F25B21810ADF121EA45AB2F86D6A1 ) \
# No xtrabackup packages for aarch64 yet, but still keeping this here
&& gpg --export --armor 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A > ${GNUPGHOME}/RPM-GPG-KEY-Percona.1 \
&& gpg --export --armor 4D1BB29D63D98E422B2113B19334A25F8507EFA5 > ${GNUPGHOME}/RPM-GPG-KEY-Percona.2 \
&& gpg --export --armor 99DB70FAE1D7CE227FB6488205B555B38483C65D > ${GNUPGHOME}/RPM-GPG-KEY-CentOS-8 \
&& gpg --export --armor 94E279EB8D8F25B21810ADF121EA45AB2F86D6A1 > ${GNUPGHOME}/RPM-GPG-KEY-EPEL-8 \
- && gpg --export --armor 3A79BD29 > ${GNUPGHOME}/RPM-GPG-KEY-MySQL.1 \
+ && gpg --export --armor A8D3785C > ${GNUPGHOME}/RPM-GPG-KEY-MySQL.1 \
&& gpg --export --armor A4A9406876FCBD3C456770C88C718D3B5072E1F5 > ${GNUPGHOME}/RPM-GPG-KEY-MySQL.2 \
&& rpmkeys --import ${GNUPGHOME}/RPM-GPG-KEY-Percona.1 ${GNUPGHOME}/RPM-GPG-KEY-Percona.2 ${GNUPGHOME}/RPM-GPG-KEY-CentOS-8 ${GNUPGHOME}/RPM-GPG-KEY-MySQL.1 ${GNUPGHOME}/RPM-GPG-KEY-MySQL.2 /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release \
&& curl -L --retry-delay 10 --retry 3 -o /tmp/mysqlrepo.rpm https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm \
diff --git a/docker/lite/Dockerfile.ubi8.mysql80 b/docker/lite/Dockerfile.ubi8.mysql80
index 5b5bfe9db73..39b1ad2cf7f 100644
--- a/docker/lite/Dockerfile.ubi8.mysql80
+++ b/docker/lite/Dockerfile.ubi8.mysql80
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql80"
FROM "${image}" AS builder
@@ -39,12 +39,12 @@ FROM registry.access.redhat.com/ubi8/ubi:latest
RUN rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
RUN mkdir /tmp/gpg && chmod 700 /tmp/gpg && export GNUPGHOME=/tmp/gpg \
&& yum install -y --setopt=alwaysprompt=no gnupg \
- && ( gpg --keyserver keyserver.ubuntu.com --recv-keys 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A 4D1BB29D63D98E422B2113B19334A25F8507EFA5 99DB70FAE1D7CE227FB6488205B555B38483C65D 3A79BD29 A4A9406876FCBD3C456770C88C718D3B5072E1F5 94E279EB8D8F25B21810ADF121EA45AB2F86D6A1 ) \
+ && ( gpg --keyserver keyserver.ubuntu.com --recv-keys 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A 4D1BB29D63D98E422B2113B19334A25F8507EFA5 99DB70FAE1D7CE227FB6488205B555B38483C65D A8D3785C A4A9406876FCBD3C456770C88C718D3B5072E1F5 94E279EB8D8F25B21810ADF121EA45AB2F86D6A1 ) \
&& gpg --export --armor 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A > ${GNUPGHOME}/RPM-GPG-KEY-Percona.1 \
&& gpg --export --armor 4D1BB29D63D98E422B2113B19334A25F8507EFA5 > ${GNUPGHOME}/RPM-GPG-KEY-Percona.2 \
&& gpg --export --armor 99DB70FAE1D7CE227FB6488205B555B38483C65D > ${GNUPGHOME}/RPM-GPG-KEY-CentOS-8 \
&& gpg --export --armor 94E279EB8D8F25B21810ADF121EA45AB2F86D6A1 > ${GNUPGHOME}/RPM-GPG-KEY-EPEL-8 \
- && gpg --export --armor 3A79BD29 > ${GNUPGHOME}/RPM-GPG-KEY-MySQL.1 \
+ && gpg --export --armor A8D3785C > ${GNUPGHOME}/RPM-GPG-KEY-MySQL.1 \
&& gpg --export --armor A4A9406876FCBD3C456770C88C718D3B5072E1F5 > ${GNUPGHOME}/RPM-GPG-KEY-MySQL.2 \
&& rpmkeys --import ${GNUPGHOME}/RPM-GPG-KEY-Percona.1 ${GNUPGHOME}/RPM-GPG-KEY-Percona.2 ${GNUPGHOME}/RPM-GPG-KEY-CentOS-8 ${GNUPGHOME}/RPM-GPG-KEY-MySQL.1 ${GNUPGHOME}/RPM-GPG-KEY-MySQL.2 /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release ${GNUPGHOME}/RPM-GPG-KEY-EPEL-8 \
&& curl -L --retry-delay 10 --retry 3 -o /tmp/mysqlrepo.rpm https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm \
diff --git a/docker/lite/install_dependencies.sh b/docker/lite/install_dependencies.sh
index 92f7ab67397..f2adfb85df9 100755
--- a/docker/lite/install_dependencies.sh
+++ b/docker/lite/install_dependencies.sh
@@ -135,7 +135,7 @@ esac
# Get GPG keys for extra apt repositories.
# repo.mysql.com
add_apt_key 8C718D3B5072E1F5
-add_apt_key 467B942D3A79BD29
+add_apt_key A8D3785C
# All flavors include Percona XtraBackup (from repo.percona.com).
add_apt_key 9334A25F8507EFA5
diff --git a/docker/local/Dockerfile b/docker/local/Dockerfile
index 9bf718680d4..5f5caa6bf80 100644
--- a/docker/local/Dockerfile
+++ b/docker/local/Dockerfile
@@ -1,4 +1,4 @@
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-common"
FROM "${image}"
diff --git a/docker/vttestserver/Dockerfile.mysql57 b/docker/vttestserver/Dockerfile.mysql57
index 8d24db1cf2a..923b1824e35 100644
--- a/docker/vttestserver/Dockerfile.mysql57
+++ b/docker/vttestserver/Dockerfile.mysql57
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql57"
FROM "${image}" AS builder
diff --git a/docker/vttestserver/Dockerfile.mysql80 b/docker/vttestserver/Dockerfile.mysql80
index 5202028e6a9..e273da5a28a 100644
--- a/docker/vttestserver/Dockerfile.mysql80
+++ b/docker/vttestserver/Dockerfile.mysql80
@@ -17,7 +17,7 @@
# ensure images contain the right binaries.
# Use a temporary layer for the build stage.
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-mysql80"
FROM "${image}" AS builder
diff --git a/examples/backups/stop_tablets.sh b/examples/backups/stop_tablets.sh
index 2a45e9e68d2..9c90bcb5b33 100755
--- a/examples/backups/stop_tablets.sh
+++ b/examples/backups/stop_tablets.sh
@@ -30,7 +30,25 @@ for tablet in 100 200 300; do
CELL=zone1 TABLET_UID=$uid ../common/scripts/mysqlctl-down.sh
echo "Removing tablet directory zone1-$uid"
vtctlclient DeleteTablet -- --allow_primary=true zone1-$uid
- rm -Rf $VTDATAROOT/vt_0000000$uid
+
+ for ((i=0; i<30; i++)); do
+ # Redirect stderr to a temporary file
+ temp_file=$(mktemp)
+ rm -Rf $VTDATAROOT/vt_0000000$uid 2>"$temp_file"
+
+ if grep -q 'Directory not empty' "$temp_file"; then
+ echo "Directory not empty, retrying..."
+ elif [ ! -s "$temp_file" ]; then
+ echo "Deletion succeeded."
+ rm -f "$temp_file"
+ break
+ else
+ echo "An error occurred."
+ cat "$temp_file"
+ fi
+ rm -f "$temp_file"
+ sleep 1
+ done
done
fi
done
diff --git a/examples/compose/docker-compose.beginners.yml b/examples/compose/docker-compose.beginners.yml
index b3315effbb3..a0b31d8ff3a 100644
--- a/examples/compose/docker-compose.beginners.yml
+++ b/examples/compose/docker-compose.beginners.yml
@@ -58,7 +58,7 @@ services:
- "3306"
vtctld:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15000:$WEB_PORT"
- "$GRPC_PORT"
@@ -81,7 +81,7 @@ services:
condition: service_healthy
vtgate:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15099:$WEB_PORT"
- "$GRPC_PORT"
@@ -111,7 +111,7 @@ services:
condition: service_healthy
schemaload:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
command:
- sh
- -c
@@ -144,12 +144,12 @@ services:
environment:
- KEYSPACES=$KEYSPACE
- GRPC_PORT=15999
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
vttablet100:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15100:$WEB_PORT"
- "$GRPC_PORT"
@@ -181,7 +181,7 @@ services:
retries: 15
vttablet101:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15101:$WEB_PORT"
- "$GRPC_PORT"
@@ -213,7 +213,7 @@ services:
retries: 15
vttablet102:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15102:$WEB_PORT"
- "$GRPC_PORT"
@@ -245,7 +245,7 @@ services:
retries: 15
vttablet103:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15103:$WEB_PORT"
- "$GRPC_PORT"
@@ -277,7 +277,7 @@ services:
retries: 15
vtorc:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
command: ["sh", "-c", "/script/vtorc-up.sh"]
depends_on:
- vtctld
@@ -307,7 +307,7 @@ services:
retries: 15
vreplication:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- ".:/script"
environment:
diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml
index 96e86a1425a..a3814eb5d27 100644
--- a/examples/compose/docker-compose.yml
+++ b/examples/compose/docker-compose.yml
@@ -75,7 +75,7 @@ services:
- SCHEMA_FILES=lookup_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
schemaload_test_keyspace:
@@ -101,7 +101,7 @@ services:
- SCHEMA_FILES=test_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
set_keyspace_durability_policy:
@@ -115,7 +115,7 @@ services:
environment:
- KEYSPACES=test_keyspace lookup_keyspace
- GRPC_PORT=15999
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
vreplication:
@@ -129,7 +129,7 @@ services:
- TOPOLOGY_FLAGS=--topo_implementation consul --topo_global_server_address consul1:8500
--topo_global_root vitess/global
- EXTERNAL_DB=0
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
vtctld:
@@ -143,7 +143,7 @@ services:
depends_on:
external_db_host:
condition: service_healthy
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15000:8080
- "15999"
@@ -160,7 +160,7 @@ services:
--normalize_queries=true '
depends_on:
- vtctld
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15099:8080
- "15999"
@@ -182,7 +182,7 @@ services:
- EXTERNAL_DB=0
- DB_USER=
- DB_PASS=
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 13000:8080
volumes:
@@ -217,7 +217,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15101:8080
- "15999"
@@ -254,7 +254,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15102:8080
- "15999"
@@ -291,7 +291,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15201:8080
- "15999"
@@ -328,7 +328,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15202:8080
- "15999"
@@ -365,7 +365,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15301:8080
- "15999"
@@ -402,7 +402,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15302:8080
- "15999"
diff --git a/examples/compose/vtcompose/docker-compose.test.yml b/examples/compose/vtcompose/docker-compose.test.yml
index b29163cfa4b..05a8cb1b780 100644
--- a/examples/compose/vtcompose/docker-compose.test.yml
+++ b/examples/compose/vtcompose/docker-compose.test.yml
@@ -79,7 +79,7 @@ services:
- SCHEMA_FILES=test_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
schemaload_unsharded_keyspace:
@@ -103,7 +103,7 @@ services:
- SCHEMA_FILES=unsharded_keyspace_schema_file.sql
- POST_LOAD_FILE=
- EXTERNAL_DB=0
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
set_keyspace_durability_policy_test_keyspace:
@@ -117,7 +117,7 @@ services:
environment:
- GRPC_PORT=15999
- KEYSPACES=test_keyspace
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
set_keyspace_durability_policy_unsharded_keyspace:
@@ -130,7 +130,7 @@ services:
environment:
- GRPC_PORT=15999
- KEYSPACES=unsharded_keyspace
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
vreplication:
@@ -144,7 +144,7 @@ services:
- TOPOLOGY_FLAGS=--topo_implementation consul --topo_global_server_address consul1:8500
--topo_global_root vitess/global
- EXTERNAL_DB=0
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- .:/script
vtctld:
@@ -159,7 +159,7 @@ services:
depends_on:
external_db_host:
condition: service_healthy
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15000:8080
- "15999"
@@ -176,7 +176,7 @@ services:
''grpc-vtgateservice'' --normalize_queries=true '
depends_on:
- vtctld
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15099:8080
- "15999"
@@ -199,7 +199,7 @@ services:
- EXTERNAL_DB=0
- DB_USER=
- DB_PASS=
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 13000:8080
volumes:
@@ -234,7 +234,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15101:8080
- "15999"
@@ -271,7 +271,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15102:8080
- "15999"
@@ -308,7 +308,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15201:8080
- "15999"
@@ -345,7 +345,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15202:8080
- "15999"
@@ -382,7 +382,7 @@ services:
- CMD-SHELL
- curl -s --fail --show-error localhost:8080/debug/health
timeout: 10s
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- 15301:8080
- "15999"
diff --git a/examples/compose/vtcompose/vtcompose.go b/examples/compose/vtcompose/vtcompose.go
index 4fcf3b5d967..bff54f90f09 100644
--- a/examples/compose/vtcompose/vtcompose.go
+++ b/examples/compose/vtcompose/vtcompose.go
@@ -533,7 +533,7 @@ func generateDefaultShard(tabAlias int, shard string, keyspaceData keyspaceInfo,
- op: add
path: /services/init_shard_primary%[2]d
value:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
command: ["sh", "-c", "/vt/bin/vtctlclient %[5]s InitShardPrimary -force %[4]s/%[3]s %[6]s-%[2]d "]
%[1]s
`, dependsOn, aliases[0], shard, keyspaceData.keyspace, opts.topologyFlags, opts.cell)
@@ -565,7 +565,7 @@ func generateExternalPrimary(
- op: add
path: /services/vttablet%[1]d
value:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15%[1]d:%[3]d"
- "%[4]d"
@@ -627,7 +627,7 @@ func generateDefaultTablet(tabAlias int, shard, role, keyspace string, dbInfo ex
- op: add
path: /services/vttablet%[1]d
value:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15%[1]d:%[4]d"
- "%[5]d"
@@ -665,7 +665,7 @@ func generateVtctld(opts vtOptions) string {
- op: add
path: /services/vtctld
value:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15000:%[1]d"
- "%[2]d"
@@ -696,7 +696,7 @@ func generateVtgate(opts vtOptions) string {
- op: add
path: /services/vtgate
value:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
ports:
- "15099:%[1]d"
- "%[2]d"
@@ -738,7 +738,7 @@ func generateVTOrc(dbInfo externalDbInfo, keyspaceInfoMap map[string]keyspaceInf
- op: add
path: /services/vtorc
value:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- ".:/script"
environment:
@@ -763,7 +763,7 @@ func generateVreplication(dbInfo externalDbInfo, opts vtOptions) string {
- op: add
path: /services/vreplication
value:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- ".:/script"
environment:
@@ -791,7 +791,7 @@ func generateSetKeyspaceDurabilityPolicy(
- op: add
path: /services/set_keyspace_durability_policy_%[3]s
value:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- ".:/script"
environment:
@@ -828,7 +828,7 @@ func generateSchemaload(
- op: add
path: /services/schemaload_%[7]s
value:
- image: vitess/lite:v16.0.6
+ image: vitess/lite:v16.0.7
volumes:
- ".:/script"
environment:
diff --git a/examples/operator/101_initial_cluster.yaml b/examples/operator/101_initial_cluster.yaml
index dce73a11c5f..82a5df75c08 100644
--- a/examples/operator/101_initial_cluster.yaml
+++ b/examples/operator/101_initial_cluster.yaml
@@ -8,14 +8,14 @@ metadata:
name: example
spec:
images:
- vtctld: vitess/lite:v16.0.6
- vtadmin: vitess/vtadmin:v16.0.6
- vtgate: vitess/lite:v16.0.6
- vttablet: vitess/lite:v16.0.6
- vtbackup: vitess/lite:v16.0.6
- vtorc: vitess/lite:v16.0.6
+ vtctld: vitess/lite:v16.0.7
+ vtadmin: vitess/vtadmin:v16.0.7
+ vtgate: vitess/lite:v16.0.7
+ vttablet: vitess/lite:v16.0.7
+ vtbackup: vitess/lite:v16.0.7
+ vtorc: vitess/lite:v16.0.7
mysqld:
- mysql80Compatible: vitess/lite:v16.0.6
+ mysql80Compatible: vitess/lite:v16.0.7
mysqldExporter: prom/mysqld-exporter:v0.11.0
cells:
- name: zone1
diff --git a/examples/operator/201_customer_tablets.yaml b/examples/operator/201_customer_tablets.yaml
index d2e65cce3c6..a62d87ef3be 100644
--- a/examples/operator/201_customer_tablets.yaml
+++ b/examples/operator/201_customer_tablets.yaml
@@ -4,14 +4,14 @@ metadata:
name: example
spec:
images:
- vtctld: vitess/lite:v16.0.6
- vtadmin: vitess/vtadmin:v16.0.6
- vtgate: vitess/lite:v16.0.6
- vttablet: vitess/lite:v16.0.6
- vtbackup: vitess/lite:v16.0.6
- vtorc: vitess/lite:v16.0.6
+ vtctld: vitess/lite:v16.0.7
+ vtadmin: vitess/vtadmin:v16.0.7
+ vtgate: vitess/lite:v16.0.7
+ vttablet: vitess/lite:v16.0.7
+ vtbackup: vitess/lite:v16.0.7
+ vtorc: vitess/lite:v16.0.7
mysqld:
- mysql80Compatible: vitess/lite:v16.0.6
+ mysql80Compatible: vitess/lite:v16.0.7
mysqldExporter: prom/mysqld-exporter:v0.11.0
cells:
- name: zone1
diff --git a/examples/operator/302_new_shards.yaml b/examples/operator/302_new_shards.yaml
index 800c9eaf75c..2cce92e8c2c 100644
--- a/examples/operator/302_new_shards.yaml
+++ b/examples/operator/302_new_shards.yaml
@@ -4,14 +4,14 @@ metadata:
name: example
spec:
images:
- vtctld: vitess/lite:v16.0.6
- vtadmin: vitess/vtadmin:v16.0.6
- vtgate: vitess/lite:v16.0.6
- vttablet: vitess/lite:v16.0.6
- vtbackup: vitess/lite:v16.0.6
- vtorc: vitess/lite:v16.0.6
+ vtctld: vitess/lite:v16.0.7
+ vtadmin: vitess/vtadmin:v16.0.7
+ vtgate: vitess/lite:v16.0.7
+ vttablet: vitess/lite:v16.0.7
+ vtbackup: vitess/lite:v16.0.7
+ vtorc: vitess/lite:v16.0.7
mysqld:
- mysql80Compatible: vitess/lite:v16.0.6
+ mysql80Compatible: vitess/lite:v16.0.7
mysqldExporter: prom/mysqld-exporter:v0.11.0
cells:
- name: zone1
diff --git a/examples/operator/306_down_shard_0.yaml b/examples/operator/306_down_shard_0.yaml
index 4d318df0a73..b1c10c3ba26 100644
--- a/examples/operator/306_down_shard_0.yaml
+++ b/examples/operator/306_down_shard_0.yaml
@@ -4,14 +4,14 @@ metadata:
name: example
spec:
images:
- vtctld: vitess/lite:v16.0.6
- vtadmin: vitess/vtadmin:v16.0.6
- vtgate: vitess/lite:v16.0.6
- vttablet: vitess/lite:v16.0.6
- vtbackup: vitess/lite:v16.0.6
- vtorc: vitess/lite:v16.0.6
+ vtctld: vitess/lite:v16.0.7
+ vtadmin: vitess/vtadmin:v16.0.7
+ vtgate: vitess/lite:v16.0.7
+ vttablet: vitess/lite:v16.0.7
+ vtbackup: vitess/lite:v16.0.7
+ vtorc: vitess/lite:v16.0.7
mysqld:
- mysql80Compatible: vitess/lite:v16.0.6
+ mysql80Compatible: vitess/lite:v16.0.7
mysqldExporter: prom/mysqld-exporter:v0.11.0
cells:
- name: zone1
diff --git a/go.mod b/go.mod
index 856cece7dfe..b6e33870f35 100644
--- a/go.mod
+++ b/go.mod
@@ -76,13 +76,13 @@ require (
go.etcd.io/etcd/api/v3 v3.5.7
go.etcd.io/etcd/client/pkg/v3 v3.5.7
go.etcd.io/etcd/client/v3 v3.5.7
- golang.org/x/crypto v0.15.0 // indirect
+ golang.org/x/crypto v0.17.0 // indirect
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616
golang.org/x/mod v0.8.0 // indirect
golang.org/x/net v0.18.0
golang.org/x/oauth2 v0.11.0
- golang.org/x/sys v0.14.0 // indirect
- golang.org/x/term v0.14.0
+ golang.org/x/sys v0.15.0 // indirect
+ golang.org/x/term v0.15.0
golang.org/x/text v0.14.0
golang.org/x/time v0.3.0
golang.org/x/tools v0.6.0
diff --git a/go.sum b/go.sum
index 24f543bbed7..930425c8692 100644
--- a/go.sum
+++ b/go.sum
@@ -857,8 +857,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA=
-golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
+golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
+golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1072,14 +1072,14 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
-golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
+golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
-golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8=
-golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww=
+golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
+golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
diff --git a/go/mysql/flavor_mysql.go b/go/mysql/flavor_mysql.go
index ce5f9a982cf..3650d085960 100644
--- a/go/mysql/flavor_mysql.go
+++ b/go/mysql/flavor_mysql.go
@@ -275,7 +275,7 @@ func (mysqlFlavor) waitUntilPositionCommand(ctx context.Context, pos Position) (
}
}
- return fmt.Sprintf("SELECT WAIT_FOR_EXECUTED_GTID_SET('%s', %v)", pos, timeoutSeconds), nil
+ return fmt.Sprintf("SELECT WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS('%s', %v)", pos, timeoutSeconds), nil
}
// readBinlogEvent is part of the Flavor interface.
diff --git a/go/test/endtoend/backup/vtbackup/backup_only_test.go b/go/test/endtoend/backup/vtbackup/backup_only_test.go
index 3730a1fa586..782937a48d7 100644
--- a/go/test/endtoend/backup/vtbackup/backup_only_test.go
+++ b/go/test/endtoend/backup/vtbackup/backup_only_test.go
@@ -18,6 +18,7 @@ package vtbackup
import (
"context"
+ "encoding/json"
"fmt"
"os"
"path"
@@ -56,13 +57,21 @@ func TestTabletInitialBackup(t *testing.T) {
// - list the backups, remove them
defer cluster.PanicHandler(t)
+ waitForReplicationToCatchup([]cluster.Vttablet{*replica1, *replica2})
+
vtBackup(t, true, false, false)
verifyBackupCount(t, shardKsName, 1)
// Initialize the tablets
initTablets(t, false, false)
- // Restore the Tablets
+ // For all version at or above v17.0.0, each replica will start in super_read_only mode. Let's verify that is working correctly.
+ if localCluster.VtTabletMajorVersion >= 17 {
+ err := primary.VttabletProcess.CreateDB("testDB")
+ require.ErrorContains(t, err, "The MySQL server is running with the --super-read-only option so it cannot execute this statement")
+ err = replica1.VttabletProcess.CreateDB("testDB")
+ require.ErrorContains(t, err, "The MySQL server is running with the --super-read-only option so it cannot execute this statement")
+ }
restore(t, primary, "replica", "NOT_SERVING")
// Vitess expects that the user has set the database into ReadWrite mode before calling
@@ -258,15 +267,17 @@ func restore(t *testing.T, tablet *cluster.Vttablet, tabletType string, waitForS
log.Infof("restoring tablet %s", time.Now())
resetTabletDirectory(t, *tablet, true)
- err := tablet.VttabletProcess.CreateDB(keyspaceName)
- require.Nil(t, err)
+ if localCluster.VtTabletMajorVersion <= 16 {
+ err := tablet.VttabletProcess.CreateDB(keyspaceName)
+ require.Nil(t, err)
+ }
// Start tablets
tablet.VttabletProcess.ExtraArgs = []string{"--db-credentials-file", dbCredentialFile}
tablet.VttabletProcess.TabletType = tabletType
tablet.VttabletProcess.ServingStatus = waitForState
tablet.VttabletProcess.SupportsBackup = true
- err = tablet.VttabletProcess.Setup()
+ err := tablet.VttabletProcess.Setup()
require.Nil(t, err)
}
@@ -294,17 +305,19 @@ func resetTabletDirectory(t *testing.T, tablet cluster.Vttablet, initMysql bool)
func tearDown(t *testing.T, initMysql bool) {
// reset replication
- promoteCommands := "STOP SLAVE; RESET SLAVE ALL; RESET MASTER;"
- disableSemiSyncCommands := "SET GLOBAL rpl_semi_sync_master_enabled = false; SET GLOBAL rpl_semi_sync_slave_enabled = false"
+ for _, db := range []string{"_vt", "vt_insert_test"} {
+ _, err := primary.VttabletProcess.QueryTablet(fmt.Sprintf("drop database if exists %s", db), keyspaceName, true)
+ require.Nil(t, err)
+ }
+ caughtUp := waitForReplicationToCatchup([]cluster.Vttablet{*replica1, *replica2})
+ require.True(t, caughtUp, "Timed out waiting for all replicas to catch up")
+ promoteCommands := []string{"STOP SLAVE", "RESET SLAVE ALL", "RESET MASTER"}
+ disableSemiSyncCommands := []string{"SET GLOBAL rpl_semi_sync_master_enabled = false", " SET GLOBAL rpl_semi_sync_slave_enabled = false"}
for _, tablet := range []cluster.Vttablet{*primary, *replica1, *replica2} {
- _, err := tablet.VttabletProcess.QueryTablet(promoteCommands, keyspaceName, true)
+ err := tablet.VttabletProcess.QueryTabletMultiple(promoteCommands, keyspaceName, true)
require.Nil(t, err)
- _, err = tablet.VttabletProcess.QueryTablet(disableSemiSyncCommands, keyspaceName, true)
+ err = tablet.VttabletProcess.QueryTabletMultiple(disableSemiSyncCommands, keyspaceName, true)
require.Nil(t, err)
- for _, db := range []string{"_vt", "vt_insert_test"} {
- _, err = tablet.VttabletProcess.QueryTablet(fmt.Sprintf("drop database if exists %s", db), keyspaceName, true)
- require.Nil(t, err)
- }
}
// TODO: Ideally we should not be resetting the mysql.
@@ -367,3 +380,39 @@ func verifyDisableEnableRedoLogs(ctx context.Context, t *testing.T, mysqlSocket
}
}
}
+
+// This helper function wait for all replicas to catch-up the replication.
+// It does this by querying the status detail url of each replica and find the lag.
+func waitForReplicationToCatchup(tablets []cluster.Vttablet) bool {
+ endTime := time.Now().Add(time.Second * 30)
+ timeout := time.After(time.Until(endTime))
+ // key-value structure returned by status url.
+ type kv struct {
+ Key string
+ Class string
+ Value string
+ }
+ // defining a struct instance
+ var statuslst []kv
+ for {
+ select {
+ case <-timeout:
+ return false
+ default:
+ var replicaCount = 0
+ for _, tablet := range tablets {
+ status := tablet.VttabletProcess.GetStatusDetails()
+ json.Unmarshal([]byte(status), &statuslst)
+ for _, obj := range statuslst {
+ if obj.Key == "Replication Lag" && obj.Value == "0s" {
+ replicaCount++
+ }
+ }
+ if replicaCount == len(tablets) {
+ return true
+ }
+ }
+ time.Sleep(time.Second * 1)
+ }
+ }
+}
diff --git a/go/test/endtoend/backup/vtbackup/main_test.go b/go/test/endtoend/backup/vtbackup/main_test.go
index 39dfc834728..3e61459f440 100644
--- a/go/test/endtoend/backup/vtbackup/main_test.go
+++ b/go/test/endtoend/backup/vtbackup/main_test.go
@@ -133,9 +133,11 @@ func TestMain(m *testing.M) {
}
// Create database
- for _, tablet := range []cluster.Vttablet{*primary, *replica1} {
- if err := tablet.VttabletProcess.CreateDB(keyspaceName); err != nil {
- return 1, err
+ if localCluster.VtTabletMajorVersion <= 16 {
+ for _, tablet := range []cluster.Vttablet{*primary, *replica1} {
+ if err := tablet.VttabletProcess.CreateDB(keyspaceName); err != nil {
+ return 1, err
+ }
}
}
diff --git a/go/test/endtoend/cluster/cluster_util.go b/go/test/endtoend/cluster/cluster_util.go
index 0a820a63540..04f8c8d116b 100644
--- a/go/test/endtoend/cluster/cluster_util.go
+++ b/go/test/endtoend/cluster/cluster_util.go
@@ -43,7 +43,7 @@ var (
dbCredentialFile string
InsertTabletTemplateKsID = `insert into %s (id, msg) values (%d, '%s') /* id:%d */`
defaultOperationTimeout = 60 * time.Second
- defeaultRetryDelay = 1 * time.Second
+ defaultRetryDelay = 1 * time.Second
)
// Restart restarts vttablet and mysql.
@@ -54,15 +54,17 @@ func (tablet *Vttablet) Restart() error {
if tablet.MysqlctlProcess.TabletUID > 0 {
tablet.MysqlctlProcess.Stop()
+ tablet.MysqlctldProcess.WaitForMysqlCtldShutdown()
tablet.VttabletProcess.TearDown()
- os.RemoveAll(tablet.VttabletProcess.Directory)
+ tablet.MysqlctldProcess.CleanupFiles(tablet.TabletUID)
return tablet.MysqlctlProcess.Start()
}
tablet.MysqlctldProcess.Stop()
+ tablet.MysqlctldProcess.WaitForMysqlCtldShutdown()
tablet.VttabletProcess.TearDown()
- os.RemoveAll(tablet.VttabletProcess.Directory)
+ tablet.MysqlctldProcess.CleanupFiles(tablet.TabletUID)
return tablet.MysqlctldProcess.Start()
}
@@ -436,6 +438,6 @@ func WaitForHealthyShard(vtctldclient *VtctldClientProcess, keyspace, shard stri
default:
}
- time.Sleep(defeaultRetryDelay)
+ time.Sleep(defaultRetryDelay)
}
}
diff --git a/go/test/endtoend/cluster/mysqlctl_process.go b/go/test/endtoend/cluster/mysqlctl_process.go
index 32e8f27e050..92ae81417f8 100644
--- a/go/test/endtoend/cluster/mysqlctl_process.go
+++ b/go/test/endtoend/cluster/mysqlctl_process.go
@@ -217,11 +217,7 @@ func (mysqlctl *MysqlctlProcess) BinaryLogsPath() string {
// CleanupFiles clean the mysql files to make sure we can start the same process again
func (mysqlctl *MysqlctlProcess) CleanupFiles(tabletUID int) {
- os.RemoveAll(path.Join(os.Getenv("VTDATAROOT"), fmt.Sprintf("/vt_%010d/data", tabletUID)))
- os.RemoveAll(path.Join(os.Getenv("VTDATAROOT"), fmt.Sprintf("/vt_%010d/relay-logs", tabletUID)))
- os.RemoveAll(path.Join(os.Getenv("VTDATAROOT"), fmt.Sprintf("/vt_%010d/tmp", tabletUID)))
- os.RemoveAll(path.Join(os.Getenv("VTDATAROOT"), fmt.Sprintf("/vt_%010d/bin-logs", tabletUID)))
- os.RemoveAll(path.Join(os.Getenv("VTDATAROOT"), fmt.Sprintf("/vt_%010d/innodb", tabletUID)))
+ os.RemoveAll(path.Join(os.Getenv("VTDATAROOT"), fmt.Sprintf("/vt_%010d", tabletUID)))
}
// Connect returns a new connection to the underlying MySQL server
diff --git a/go/test/endtoend/cluster/mysqlctld_process.go b/go/test/endtoend/cluster/mysqlctld_process.go
index 13e9297fa7c..3c4954420d8 100644
--- a/go/test/endtoend/cluster/mysqlctld_process.go
+++ b/go/test/endtoend/cluster/mysqlctld_process.go
@@ -172,3 +172,25 @@ func (mysqlctld *MysqlctldProcess) IsHealthy() bool {
_, err := mysql.Connect(context.Background(), ¶ms)
return err == nil
}
+
+// HasShutdown checks if the process has been set to nil
+func (mysqlctld *MysqlctldProcess) hasShutdown() bool {
+ return mysqlctld.process == nil
+}
+
+// WaitForMysqlCtldShutdown waits for mysqlctld to have shutdown.
+func (mysqlctld *MysqlctldProcess) WaitForMysqlCtldShutdown() bool {
+ tmr := time.NewTimer(defaultOperationTimeout)
+ defer tmr.Stop()
+ for {
+ if mysqlctld.hasShutdown() {
+ return true
+ }
+ select {
+ case <-tmr.C:
+ return false
+ default:
+ }
+ time.Sleep(defaultRetryDelay)
+ }
+}
diff --git a/go/test/endtoend/cluster/vttablet_process.go b/go/test/endtoend/cluster/vttablet_process.go
index 747bdc8fb39..13dd11819e8 100644
--- a/go/test/endtoend/cluster/vttablet_process.go
+++ b/go/test/endtoend/cluster/vttablet_process.go
@@ -435,6 +435,34 @@ func (vttablet *VttabletProcess) QueryTablet(query string, keyspace string, useD
return executeQuery(conn, query)
}
+// QueryTabletMultiple lets you execute multiple queries -- without any
+// results -- against the tablet.
+func (vttablet *VttabletProcess) QueryTabletMultiple(queries []string, keyspace string, useDb bool) error {
+ conn, err := vttablet.TabletConn(keyspace, useDb)
+ if err != nil {
+ return err
+ }
+ defer conn.Close()
+
+ for _, query := range queries {
+ log.Infof("Executing query %s (on %s)", query, vttablet.Name)
+ _, err := executeQuery(conn, query)
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+// TabletConn opens a MySQL connection on this tablet
+func (vttablet *VttabletProcess) TabletConn(keyspace string, useDb bool) (*mysql.Conn, error) {
+ if !useDb {
+ keyspace = ""
+ }
+ dbParams := NewConnParams(vttablet.DbPort, vttablet.DbPassword, path.Join(vttablet.Directory, "mysql.sock"), keyspace)
+ return vttablet.conn(&dbParams)
+}
+
func (vttablet *VttabletProcess) defaultConn(dbname string) (*mysql.Conn, error) {
dbParams := mysql.ConnParams{
Uname: "vt_dba",
diff --git a/go/test/endtoend/clustertest/vtctld_test.go b/go/test/endtoend/clustertest/vtctld_test.go
index 0ba4af1ee41..c741ce7fcb9 100644
--- a/go/test/endtoend/clustertest/vtctld_test.go
+++ b/go/test/endtoend/clustertest/vtctld_test.go
@@ -128,9 +128,51 @@ func testTabletStatus(t *testing.T) {
}
func testExecuteAsDba(t *testing.T) {
- result, err := clusterInstance.VtctlclientProcess.ExecuteCommandWithOutput("ExecuteFetchAsDba", clusterInstance.Keyspaces[0].Shards[0].Vttablets[0].Alias, `SELECT 1 AS a`)
- require.NoError(t, err)
- assert.Equal(t, result, oneTableOutput)
+ tcases := []struct {
+ query string
+ result string
+ expectErr bool
+ }{
+ {
+ query: "",
+ expectErr: true,
+ },
+ {
+ query: "SELECT 1 AS a",
+ result: oneTableOutput,
+ },
+ {
+ query: "SELECT 1 AS a; SELECT 1 AS a",
+ expectErr: true,
+ },
+ {
+ query: "create table t(id int)",
+ result: "",
+ },
+ {
+ query: "create table if not exists t(id int)",
+ result: "",
+ },
+ {
+ query: "create table if not exists t(id int); create table if not exists t(id int);",
+ result: "",
+ },
+ {
+ query: "create table if not exists t(id int); create table if not exists t(id int); SELECT 1 AS a",
+ expectErr: true,
+ },
+ }
+ for _, tcase := range tcases {
+ t.Run(tcase.query, func(t *testing.T) {
+ result, err := clusterInstance.VtctlclientProcess.ExecuteCommandWithOutput("ExecuteFetchAsDba", clusterInstance.Keyspaces[0].Shards[0].Vttablets[0].Alias, tcase.query)
+ if tcase.expectErr {
+ assert.Error(t, err)
+ } else {
+ require.NoError(t, err)
+ assert.Equal(t, tcase.result, result)
+ }
+ })
+ }
}
func testExecuteAsApp(t *testing.T) {
diff --git a/go/test/endtoend/mysqlctld/mysqlctld_test.go b/go/test/endtoend/mysqlctld/mysqlctld_test.go
index 28d2bb71ced..35df53aa80b 100644
--- a/go/test/endtoend/mysqlctld/mysqlctld_test.go
+++ b/go/test/endtoend/mysqlctld/mysqlctld_test.go
@@ -133,6 +133,7 @@ func TestRestart(t *testing.T) {
defer cluster.PanicHandler(t)
err := primaryTablet.MysqlctldProcess.Stop()
require.Nil(t, err)
+ require.Truef(t, primaryTablet.MysqlctldProcess.WaitForMysqlCtldShutdown(), "Mysqlctld has not stopped...")
primaryTablet.MysqlctldProcess.CleanupFiles(primaryTablet.TabletUID)
err = primaryTablet.MysqlctldProcess.Start()
require.Nil(t, err)
diff --git a/go/test/endtoend/mysqlserver/main_test.go b/go/test/endtoend/mysqlserver/main_test.go
index 42b4e6ea235..18b169e33d7 100644
--- a/go/test/endtoend/mysqlserver/main_test.go
+++ b/go/test/endtoend/mysqlserver/main_test.go
@@ -51,7 +51,7 @@ var (
PARTITION BY HASH( TO_DAYS(created) )
PARTITIONS 10;
`
- createProcSQL = `use vt_test_keyspace;
+ createProcSQL = `
CREATE PROCEDURE testing()
BEGIN
delete from vt_insert_test;
@@ -144,7 +144,7 @@ func TestMain(m *testing.M) {
}
primaryTabletProcess := clusterInstance.Keyspaces[0].Shards[0].PrimaryTablet().VttabletProcess
- if _, err := primaryTabletProcess.QueryTablet(createProcSQL, keyspaceName, false); err != nil {
+ if _, err := primaryTabletProcess.QueryTablet(createProcSQL, keyspaceName, true); err != nil {
return 1, err
}
diff --git a/go/test/endtoend/reparent/emergencyreparent/ers_test.go b/go/test/endtoend/reparent/emergencyreparent/ers_test.go
index 8f6638ecb7e..fbd4770e15e 100644
--- a/go/test/endtoend/reparent/emergencyreparent/ers_test.go
+++ b/go/test/endtoend/reparent/emergencyreparent/ers_test.go
@@ -349,8 +349,11 @@ func TestNoReplicationStatusAndIOThreadStopped(t *testing.T) {
tablets := clusterInstance.Keyspaces[0].Shards[0].Vttablets
utils.ConfirmReplication(t, tablets[0], []*cluster.Vttablet{tablets[1], tablets[2], tablets[3]})
- err := clusterInstance.VtctlclientProcess.ExecuteCommand("ExecuteFetchAsDba", tablets[1].Alias, `STOP SLAVE; RESET SLAVE ALL`)
+ err := clusterInstance.VtctlclientProcess.ExecuteCommand("ExecuteFetchAsDba", tablets[1].Alias, `STOP SLAVE`)
require.NoError(t, err)
+ err = clusterInstance.VtctlclientProcess.ExecuteCommand("ExecuteFetchAsDba", tablets[1].Alias, `RESET SLAVE ALL`)
+ require.NoError(t, err)
+ //
err = clusterInstance.VtctlclientProcess.ExecuteCommand("ExecuteFetchAsDba", tablets[3].Alias, `STOP SLAVE IO_THREAD;`)
require.NoError(t, err)
// Run an additional command in the current primary which will only be acked by tablets[2] and be in its relay log.
diff --git a/go/test/endtoend/reparent/plannedreparent/reparent_test.go b/go/test/endtoend/reparent/plannedreparent/reparent_test.go
index ba8e17eb4d2..c1599cf093c 100644
--- a/go/test/endtoend/reparent/plannedreparent/reparent_test.go
+++ b/go/test/endtoend/reparent/plannedreparent/reparent_test.go
@@ -96,7 +96,7 @@ func TestPRSWithDrainedLaggingTablet(t *testing.T) {
utils.ConfirmReplication(t, tablets[0], []*cluster.Vttablet{tablets[1], tablets[2], tablets[3]})
// make tablets[1 lag from the other tablets by setting the delay to a large number
- utils.RunSQL(context.Background(), t, `stop slave;CHANGE MASTER TO MASTER_DELAY = 1999;start slave;`, tablets[1])
+ utils.RunSQLs(context.Background(), t, []string{`stop slave`, `CHANGE MASTER TO MASTER_DELAY = 1999`, `start slave;`}, tablets[1])
// insert another row in tablets[1
utils.ConfirmReplication(t, tablets[0], []*cluster.Vttablet{tablets[2], tablets[3]})
@@ -213,26 +213,33 @@ func reparentFromOutside(t *testing.T, clusterInstance *cluster.LocalProcessClus
}
// commands to convert a replica to be writable
- promoteReplicaCommands := "STOP SLAVE; RESET SLAVE ALL; SET GLOBAL read_only = OFF;"
- utils.RunSQL(ctx, t, promoteReplicaCommands, tablets[1])
+ promoteReplicaCommands := []string{"STOP SLAVE", "RESET SLAVE ALL", "SET GLOBAL read_only = OFF"}
+ utils.RunSQLs(ctx, t, promoteReplicaCommands, tablets[1])
// Get primary position
_, gtID := cluster.GetPrimaryPosition(t, *tablets[1], utils.Hostname)
// tablets[0] will now be a replica of tablets[1
- changeReplicationSourceCommands := fmt.Sprintf("RESET MASTER; RESET SLAVE; SET GLOBAL gtid_purged = '%s';"+
- "CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d, MASTER_USER='vt_repl', MASTER_AUTO_POSITION = 1;"+
- "START SLAVE;", gtID, utils.Hostname, tablets[1].MySQLPort)
- utils.RunSQL(ctx, t, changeReplicationSourceCommands, tablets[0])
+ changeReplicationSourceCommands := []string{
+ "RESET MASTER",
+ "RESET SLAVE",
+ fmt.Sprintf("SET GLOBAL gtid_purged = '%s'", gtID),
+ fmt.Sprintf("CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d, MASTER_USER='vt_repl', MASTER_AUTO_POSITION = 1", utils.Hostname, tablets[1].MySQLPort),
+ }
+ utils.RunSQLs(ctx, t, changeReplicationSourceCommands, tablets[0])
// Capture time when we made tablets[1 writable
baseTime := time.Now().UnixNano() / 1000000000
// tablets[2 will be a replica of tablets[1
- changeReplicationSourceCommands = fmt.Sprintf("STOP SLAVE; RESET MASTER; SET GLOBAL gtid_purged = '%s';"+
- "CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d, MASTER_USER='vt_repl', MASTER_AUTO_POSITION = 1;"+
- "START SLAVE;", gtID, utils.Hostname, tablets[1].MySQLPort)
- utils.RunSQL(ctx, t, changeReplicationSourceCommands, tablets[2])
+ changeReplicationSourceCommands = []string{
+ "STOP SLAVE",
+ "RESET MASTER",
+ fmt.Sprintf("SET GLOBAL gtid_purged = '%s'", gtID),
+ fmt.Sprintf("CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d, MASTER_USER='vt_repl', MASTER_AUTO_POSITION = 1", utils.Hostname, tablets[1].MySQLPort),
+ "START SLAVE",
+ }
+ utils.RunSQLs(ctx, t, changeReplicationSourceCommands, tablets[2])
// To test the downPrimary, we kill the old primary first and delete its tablet record
if downPrimary {
diff --git a/go/test/endtoend/reparent/utils/utils.go b/go/test/endtoend/reparent/utils/utils.go
index 8bab1fe4c0c..d9211d4f5f6 100644
--- a/go/test/endtoend/reparent/utils/utils.go
+++ b/go/test/endtoend/reparent/utils/utils.go
@@ -262,6 +262,15 @@ func getMysqlConnParam(tablet *cluster.Vttablet) mysql.ConnParams {
return connParams
}
+// RunSQLs is used to run SQL commands directly on the MySQL instance of a vttablet
+func RunSQLs(ctx context.Context, t *testing.T, sqls []string, tablet *cluster.Vttablet) (results []*sqltypes.Result) {
+ for _, sql := range sqls {
+ result := RunSQL(ctx, t, sql, tablet)
+ results = append(results, result)
+ }
+ return results
+}
+
// RunSQL is used to run a SQL command directly on the MySQL instance of a vttablet
func RunSQL(ctx context.Context, t *testing.T, sql string, tablet *cluster.Vttablet) *sqltypes.Result {
tabletParams := getMysqlConnParam(tablet)
diff --git a/go/test/endtoend/vtgate/queries/aggregation/aggregation_test.go b/go/test/endtoend/vtgate/queries/aggregation/aggregation_test.go
index 13a5d628725..e15933a1745 100644
--- a/go/test/endtoend/vtgate/queries/aggregation/aggregation_test.go
+++ b/go/test/endtoend/vtgate/queries/aggregation/aggregation_test.go
@@ -384,8 +384,11 @@ func TestAggregateRandom(t *testing.T) {
mcmp.AssertMatches("SELECT /*vt+ PLANNER=gen4 */ t1.shardKey, t1.name, count(t2.id) FROM t1 JOIN t2 ON t1.value != t2.shardKey GROUP BY t1.t1_id", `[[INT64(1) VARCHAR("name 1") INT64(2)] [INT64(2) VARCHAR("name 2") INT64(2)]]`)
- mcmp.Exec("set sql_mode=''")
- mcmp.AssertMatches("select /*vt+ PLANNER=Gen4 */ tbl0.comm, count(*) from emp as tbl0, emp as tbl1 where tbl0.empno = tbl1.deptno", `[[NULL INT64(0)]]`)
+ t.Run("Empty sql mode", func(t *testing.T) {
+ utils.SkipIfBinaryIsBelowVersion(t, 16, "vtgate")
+ mcmp.Exec("set sql_mode=''")
+ mcmp.AssertMatches("select /*vt+ PLANNER=Gen4 */ tbl0.comm, count(*) from emp as tbl0, emp as tbl1 where tbl0.empno = tbl1.deptno", `[[NULL INT64(0)]]`)
+ })
}
// TestAggregateLeftJoin tests that aggregates work with left joins and does not ignore the count when column value does not match the right side table.
diff --git a/go/test/endtoend/vtgate/queries/dml/insert_test.go b/go/test/endtoend/vtgate/queries/dml/insert_test.go
index a6b5d1a1fc4..e49ee830979 100644
--- a/go/test/endtoend/vtgate/queries/dml/insert_test.go
+++ b/go/test/endtoend/vtgate/queries/dml/insert_test.go
@@ -21,7 +21,9 @@ import (
"testing"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+ "vitess.io/vitess/go/test/endtoend/cluster"
"vitess.io/vitess/go/test/endtoend/utils"
)
@@ -71,8 +73,15 @@ func TestFailureInsertSelect(t *testing.T) {
// lookup key same (does not fail on MySQL as there is no lookup, and we have not put unique contrains on num column)
utils.AssertContainsError(t, mcmp.VtConn, "insert into s_tbl(id, num) select id*20, num from s_tbl where id = 1", `lookup.Create: Code: ALREADY_EXISTS`)
// mismatch column count
- mcmp.AssertContainsError("insert into s_tbl(id, num) select 100,200,300", `column count does not match value count at row 1`)
- mcmp.AssertContainsError("insert into s_tbl(id, num) select 100", `column count does not match value count at row 1`)
+ vtgateVersion, err := cluster.GetMajorVersion("vtgate")
+ require.NoError(t, err)
+ if vtgateVersion >= 16 {
+ mcmp.AssertContainsError("insert into s_tbl(id, num) select 100,200,300", `column count does not match value count at row 1`)
+ mcmp.AssertContainsError("insert into s_tbl(id, num) select 100", `column count does not match value count at row 1`)
+ } else {
+ mcmp.AssertContainsError("insert into s_tbl(id, num) select 100,200,300", `Column count doesn't match value count at row 1`)
+ mcmp.AssertContainsError("insert into s_tbl(id, num) select 100", `Column count doesn't match value count at row 1`)
+ }
})
}
}
@@ -323,8 +332,15 @@ func TestIgnoreInsertSelect(t *testing.T) {
utils.AssertMatches(t, mcmp.VtConn, "select oid, cust_no from order_tbl order by oid", `[[INT64(1) INT64(100)] [INT64(2) INT64(200)] [INT64(3) INT64(300)] [INT64(4) INT64(401)]]`)
// inserting on dup trying to update vindex throws error.
- utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update region_id = region_id + 1", `unsupported: DML cannot update vindex column`)
- utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update oid = oid + 100", `unsupported: DML cannot update vindex column`)
+ vtgateVersion, err := cluster.GetMajorVersion("vtgate")
+ require.NoError(t, err)
+ if vtgateVersion >= 16 {
+ utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update region_id = region_id + 1", `unsupported: DML cannot update vindex column`)
+ utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update oid = oid + 100", `unsupported: DML cannot update vindex column`)
+ } else {
+ utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update region_id = region_id + 1", `unsupported: DML cannot change vindex column`)
+ utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update oid = oid + 100", `unsupported: DML cannot change vindex column`)
+ }
}
func TestIgnoreInsertSelectOlapMode(t *testing.T) {
@@ -361,8 +377,15 @@ func TestIgnoreInsertSelectOlapMode(t *testing.T) {
utils.AssertMatches(t, mcmp.VtConn, "select oid, cust_no from order_tbl order by oid", `[[INT64(1) INT64(100)] [INT64(2) INT64(200)] [INT64(3) INT64(300)] [INT64(4) INT64(401)]]`)
// inserting on dup trying to update vindex throws error.
- utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update region_id = region_id + 1", `unsupported: DML cannot update vindex column`)
- utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update oid = oid + 100", `unsupported: DML cannot update vindex column`)
+ vtgateVersion, err := cluster.GetMajorVersion("vtgate")
+ require.NoError(t, err)
+ if vtgateVersion >= 16 {
+ utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update region_id = region_id + 1", `unsupported: DML cannot update vindex column`)
+ utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update oid = oid + 100", `unsupported: DML cannot update vindex column`)
+ } else {
+ utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update region_id = region_id + 1", `unsupported: DML cannot change vindex column`)
+ utils.AssertContainsError(t, mcmp.VtConn, "insert into order_tbl(region_id, oid, cust_no) select 1, 10, 1000 on duplicate key update oid = oid + 100", `unsupported: DML cannot change vindex column`)
+ }
}
func TestInsertSelectUnshardedUsingSharded(t *testing.T) {
diff --git a/go/test/endtoend/vtgate/queries/misc/misc_test.go b/go/test/endtoend/vtgate/queries/misc/misc_test.go
index cdd9f97d671..3357bf02f8a 100644
--- a/go/test/endtoend/vtgate/queries/misc/misc_test.go
+++ b/go/test/endtoend/vtgate/queries/misc/misc_test.go
@@ -120,6 +120,7 @@ func TestCast(t *testing.T) {
}
func TestOuterJoinWithPredicate(t *testing.T) {
+ utils.SkipIfBinaryIsBelowVersion(t, 16, "vtgate")
mcmp, closer := start(t)
defer closer()
@@ -187,6 +188,7 @@ func TestBuggyOuterJoin(t *testing.T) {
}
func TestLeftJoinUsingUnsharded(t *testing.T) {
+ utils.SkipIfBinaryIsBelowVersion(t, 16, "vtgate")
mcmp, closer := start(t)
defer closer()
diff --git a/go/test/endtoend/vtgate/queries/normalize/normalize_test.go b/go/test/endtoend/vtgate/queries/normalize/normalize_test.go
index dd603ad5d1e..ca6b94509d8 100644
--- a/go/test/endtoend/vtgate/queries/normalize/normalize_test.go
+++ b/go/test/endtoend/vtgate/queries/normalize/normalize_test.go
@@ -25,6 +25,7 @@ import (
"testing"
"time"
+ "vitess.io/vitess/go/test/endtoend/cluster"
"vitess.io/vitess/go/test/endtoend/utils"
"github.com/stretchr/testify/assert"
@@ -40,6 +41,12 @@ func TestNormalizeAllFields(t *testing.T) {
insertQuery := `insert into t1 values (1, "chars", "variable chars", x'73757265', 0x676F, 0.33, 9.99, 1, "1976-06-08", "small", "b", "{\"key\":\"value\"}", point(1,5), b'011', 0b0101)`
normalizedInsertQuery := `insert into t1 values (:vtg1, :vtg2, :vtg3, :vtg4, :vtg5, :vtg6, :vtg7, :vtg8, :vtg9, :vtg10, :vtg11, :vtg12, point(:vtg13, :vtg14), :vtg15, :vtg16)`
+ vtgateVersion, err := cluster.GetMajorVersion("vtgate")
+ require.NoError(t, err)
+ if vtgateVersion >= 17 {
+ normalizedInsertQuery = `insert into t1 values (:vtg1 /* INT64 */, :vtg2 /* VARCHAR */, :vtg3 /* VARCHAR */, :vtg4 /* HEXVAL */, :vtg5 /* HEXNUM */, :vtg6 /* DECIMAL */, :vtg7 /* DECIMAL */, :vtg8 /* INT64 */, :vtg9 /* VARCHAR */, :vtg10 /* VARCHAR */, :vtg11 /* VARCHAR */, :vtg12 /* VARCHAR */, point(:vtg13 /* INT64 */, :vtg14 /* INT64 */), :vtg15 /* HEXNUM */, :vtg16 /* HEXNUM */)`
+ }
+
selectQuery := "select * from t1"
utils.Exec(t, conn, insertQuery)
qr := utils.Exec(t, conn, selectQuery)
diff --git a/go/test/endtoend/vtgate/queries/vexplain/vexplain_test.go b/go/test/endtoend/vtgate/queries/vexplain/vexplain_test.go
index a06db1e8789..da7748be791 100644
--- a/go/test/endtoend/vtgate/queries/vexplain/vexplain_test.go
+++ b/go/test/endtoend/vtgate/queries/vexplain/vexplain_test.go
@@ -52,6 +52,7 @@ func start(t *testing.T) (*mysql.Conn, func()) {
}
func TestVtGateVExplain(t *testing.T) {
+ utils.SkipIfBinaryIsBelowVersion(t, 16, "vtgate")
conn, closer := start(t)
defer closer()
@@ -119,6 +120,7 @@ func TestVtGateVExplain(t *testing.T) {
}
func TestVExplainPlan(t *testing.T) {
+ utils.SkipIfBinaryIsBelowVersion(t, 16, "vtgate")
conn, closer := start(t)
defer closer()
@@ -128,6 +130,7 @@ func TestVExplainPlan(t *testing.T) {
}
func TestVExplainAll(t *testing.T) {
+ utils.SkipIfBinaryIsBelowVersion(t, 16, "vtgate")
conn, closer := start(t)
defer closer()
diff --git a/go/test/endtoend/vtorc/general/vtorc_test.go b/go/test/endtoend/vtorc/general/vtorc_test.go
index c0a845a5699..d03ba8af735 100644
--- a/go/test/endtoend/vtorc/general/vtorc_test.go
+++ b/go/test/endtoend/vtorc/general/vtorc_test.go
@@ -184,9 +184,13 @@ func TestVTOrcRepairs(t *testing.T) {
t.Run("ReplicationFromOtherReplica", func(t *testing.T) {
// point replica at otherReplica
- changeReplicationSourceCommand := fmt.Sprintf("STOP SLAVE; RESET SLAVE ALL;"+
- "CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d, MASTER_USER='vt_repl', MASTER_AUTO_POSITION = 1; START SLAVE", utils.Hostname, otherReplica.MySQLPort)
- _, err := utils.RunSQL(t, changeReplicationSourceCommand, replica, "")
+ changeReplicationSourceCommands := []string{
+ "STOP SLAVE",
+ "RESET SLAVE ALL",
+ fmt.Sprintf("CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d, MASTER_USER='vt_repl', MASTER_AUTO_POSITION = 1", utils.Hostname, otherReplica.MySQLPort),
+ "START SLAVE",
+ }
+ err := utils.RunSQLs(t, changeReplicationSourceCommands, replica, "")
require.NoError(t, err)
// wait until the source port is set back correctly by vtorc
@@ -199,10 +203,13 @@ func TestVTOrcRepairs(t *testing.T) {
t.Run("CircularReplication", func(t *testing.T) {
// change the replication source on the primary
- changeReplicationSourceCommands := fmt.Sprintf("STOP SLAVE; RESET SLAVE ALL;"+
- "CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d, MASTER_USER='vt_repl', MASTER_AUTO_POSITION = 1;"+
- "START SLAVE;", replica.VttabletProcess.TabletHostname, replica.MySQLPort)
- _, err := utils.RunSQL(t, changeReplicationSourceCommands, curPrimary, "")
+ changeReplicationSourceCommands := []string{
+ "STOP SLAVE",
+ "RESET SLAVE ALL",
+ fmt.Sprintf("CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d, MASTER_USER='vt_repl', MASTER_AUTO_POSITION = 1", replica.VttabletProcess.TabletHostname, replica.MySQLPort),
+ "START SLAVE",
+ }
+ err := utils.RunSQLs(t, changeReplicationSourceCommands, curPrimary, "")
require.NoError(t, err)
// wait for curPrimary to reach stable state
diff --git a/go/test/endtoend/vtorc/utils/utils.go b/go/test/endtoend/vtorc/utils/utils.go
index 8d30e477e2d..4e2e87e8d6d 100644
--- a/go/test/endtoend/vtorc/utils/utils.go
+++ b/go/test/endtoend/vtorc/utils/utils.go
@@ -585,6 +585,26 @@ func RunSQL(t *testing.T, sql string, tablet *cluster.Vttablet, db string) (*sql
return execute(t, conn, sql)
}
+// RunSQLs is used to run a list of SQL statements on the given tablet
+func RunSQLs(t *testing.T, sqls []string, tablet *cluster.Vttablet, db string) error {
+ // Get Connection
+ tabletParams := getMysqlConnParam(tablet, db)
+ var timeoutDuration = time.Duration(5 * len(sqls))
+ ctx, cancel := context.WithTimeout(context.Background(), timeoutDuration*time.Second)
+ defer cancel()
+ conn, err := mysql.Connect(ctx, &tabletParams)
+ require.Nil(t, err)
+ defer conn.Close()
+
+ // Run SQLs
+ for _, sql := range sqls {
+ if _, err := execute(t, conn, sql); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
func execute(t *testing.T, conn *mysql.Conn, query string) (*sqltypes.Result, error) {
t.Helper()
return conn.ExecuteFetch(query, 1000, true)
diff --git a/go/vt/servenv/version.go b/go/vt/servenv/version.go
index daec3d09cef..b63b7108141 100644
--- a/go/vt/servenv/version.go
+++ b/go/vt/servenv/version.go
@@ -19,4 +19,4 @@ package servenv
// THIS FILE IS AUTO-GENERATED DURING NEW RELEASES BY ./tools/do_releases.sh
// DO NOT EDIT
-const versionName = "16.0.7-SNAPSHOT"
+const versionName = "16.0.8-SNAPSHOT"
diff --git a/go/vt/sqlparser/ast_test.go b/go/vt/sqlparser/ast_test.go
index 88e9cedf55d..8a7a8d9d622 100644
--- a/go/vt/sqlparser/ast_test.go
+++ b/go/vt/sqlparser/ast_test.go
@@ -746,7 +746,26 @@ func TestSplitStatementToPieces(t *testing.T) {
"`createtime` datetime NOT NULL DEFAULT NOW() COMMENT 'create time;'," +
"`comment` varchar(100) NOT NULL DEFAULT '' COMMENT 'comment'," +
"PRIMARY KEY (`id`))",
- }}
+ }, {
+ input: "create table t1 (id int primary key); create table t2 (id int primary key);",
+ output: "create table t1 (id int primary key); create table t2 (id int primary key)",
+ }, {
+ input: ";;; create table t1 (id int primary key);;; ;create table t2 (id int primary key);",
+ output: " create table t1 (id int primary key);create table t2 (id int primary key)",
+ }, {
+ // The input doesn't have to be valid SQL statements!
+ input: ";create table t1 ;create table t2 (id;",
+ output: "create table t1 ;create table t2 (id",
+ }, {
+ // Ignore quoted semicolon
+ input: ";create table t1 ';';;;create table t2 (id;",
+ output: "create table t1 ';';create table t2 (id",
+ }, {
+ // Ignore quoted semicolon
+ input: "stop replica; start replica",
+ output: "stop replica; start replica",
+ },
+ }
for _, tcase := range testcases {
t.Run(tcase.input, func(t *testing.T) {
diff --git a/go/vt/vtctl/grpcvtctldserver/server.go b/go/vt/vtctl/grpcvtctldserver/server.go
index 1885536f98f..fbfcb546103 100644
--- a/go/vt/vtctl/grpcvtctldserver/server.go
+++ b/go/vt/vtctl/grpcvtctldserver/server.go
@@ -2335,7 +2335,7 @@ func (s *VtctldServer) PlannedReparentShard(ctx context.Context, req *vtctldatap
resp.Keyspace = ev.ShardInfo.Keyspace()
resp.Shard = ev.ShardInfo.ShardName()
- if !topoproto.TabletAliasIsZero(ev.NewPrimary.Alias) {
+ if ev.NewPrimary != nil && !topoproto.TabletAliasIsZero(ev.NewPrimary.Alias) {
resp.PromotedPrimary = ev.NewPrimary.Alias
}
}
diff --git a/go/vt/vtctl/grpcvtctldserver/server_test.go b/go/vt/vtctl/grpcvtctldserver/server_test.go
index 52b2176c962..0f26c3b82f6 100644
--- a/go/vt/vtctl/grpcvtctldserver/server_test.go
+++ b/go/vt/vtctl/grpcvtctldserver/server_test.go
@@ -6200,7 +6200,7 @@ func TestPlannedReparentShard(t *testing.T) {
req *vtctldatapb.PlannedReparentShardRequest
expected *vtctldatapb.PlannedReparentShardResponse
expectEventsToOccur bool
- shouldErr bool
+ expectedErr string
}{
{
name: "successful reparent",
@@ -6300,7 +6300,6 @@ func TestPlannedReparentShard(t *testing.T) {
},
},
expectEventsToOccur: true,
- shouldErr: false,
},
{
// Note: this is testing the error-handling done in
@@ -6316,7 +6315,7 @@ func TestPlannedReparentShard(t *testing.T) {
Shard: "-",
},
expectEventsToOccur: false,
- shouldErr: true,
+ expectedErr: "node doesn't exist: keyspaces/testkeyspace/shards/-",
},
{
name: "invalid WaitReplicasTimeout",
@@ -6326,7 +6325,61 @@ func TestPlannedReparentShard(t *testing.T) {
Nanos: 1,
},
},
- shouldErr: true,
+ expectedErr: "duration: seconds:-1 nanos:1 is out of range for time.Duration",
+ },
+ {
+ name: "no promotable tablets in the same cell as the primary",
+ ts: memorytopo.NewServer("zone1", "zone2"),
+ tablets: []*topodatapb.Tablet{
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 100,
+ },
+ Type: topodatapb.TabletType_PRIMARY,
+ PrimaryTermStartTime: &vttime.Time{
+ Seconds: 100,
+ },
+ Keyspace: "testkeyspace",
+ Shard: "-",
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone2",
+ Uid: 200,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ Keyspace: "testkeyspace",
+ Shard: "-",
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone2",
+ Uid: 101,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ Keyspace: "testkeyspace",
+ Shard: "-",
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ PrimaryPositionResults: map[string]struct {
+ Position string
+ Error error
+ }{
+ "zone1-0000000100": {
+ Position: "doesn't matter",
+ Error: nil,
+ },
+ },
+ },
+ req: &vtctldatapb.PlannedReparentShardRequest{
+ Keyspace: "testkeyspace",
+ Shard: "-",
+ WaitReplicasTimeout: protoutil.DurationToProto(time.Millisecond * 10),
+ },
+ expectEventsToOccur: true,
+ expectedErr: "cannot find a tablet to reparent to in the same cell as the current primary",
},
}
@@ -6362,8 +6415,8 @@ func TestPlannedReparentShard(t *testing.T) {
testutil.AssertLogutilEventsOccurred(t, resp, "expected events to occur during ERS")
}()
- if tt.shouldErr {
- assert.Error(t, err)
+ if tt.expectedErr != "" {
+ assert.EqualError(t, err, tt.expectedErr)
return
}
diff --git a/go/vt/vtgate/vindexes/unicode.go b/go/vt/vtgate/vindexes/unicode.go
index bbf0be16c1d..6711f77c7d9 100644
--- a/go/vt/vtgate/vindexes/unicode.go
+++ b/go/vt/vtgate/vindexes/unicode.go
@@ -33,7 +33,10 @@ import (
func unicodeHash(hashFunc func([]byte) []byte, key sqltypes.Value) ([]byte, error) {
collator := collatorPool.Get().(*pooledCollator)
- defer collatorPool.Put(collator)
+ defer func() {
+ collator.buf.Reset()
+ collatorPool.Put(collator)
+ }()
keyBytes, err := key.ToBytes()
if err != nil {
diff --git a/go/vt/vttablet/endtoend/config_test.go b/go/vt/vttablet/endtoend/config_test.go
index 99f1bc8583e..2eb36e2574a 100644
--- a/go/vt/vttablet/endtoend/config_test.go
+++ b/go/vt/vttablet/endtoend/config_test.go
@@ -116,64 +116,88 @@ func TestDisableConsolidator(t *testing.T) {
}
func TestConsolidatorReplicasOnly(t *testing.T) {
- totalConsolidationsTag := "Waits/Histograms/Consolidations/Count"
- initial := framework.FetchInt(framework.DebugVars(), totalConsolidationsTag)
- var wg sync.WaitGroup
- wg.Add(2)
- go func() {
- framework.NewClient().Execute("select sleep(0.5) from dual", nil)
- wg.Done()
- }()
- go func() {
- framework.NewClient().Execute("select sleep(0.5) from dual", nil)
- wg.Done()
- }()
- wg.Wait()
- afterOne := framework.FetchInt(framework.DebugVars(), totalConsolidationsTag)
- assert.Equal(t, initial+1, afterOne, "expected one consolidation")
-
- revert := changeVar(t, "Consolidator", tabletenv.NotOnPrimary)
- defer revert()
-
- // primary should not do query consolidation
- var wg2 sync.WaitGroup
- wg2.Add(2)
- go func() {
- framework.NewClient().Execute("select sleep(0.5) from dual", nil)
- wg2.Done()
- }()
- go func() {
- framework.NewClient().Execute("select sleep(0.5) from dual", nil)
- wg2.Done()
- }()
- wg2.Wait()
- noNewConsolidations := framework.FetchInt(framework.DebugVars(), totalConsolidationsTag)
- assert.Equal(t, afterOne, noNewConsolidations, "expected no new consolidations")
-
- // become a replica, where query consolidation should happen
- client := framework.NewClientWithTabletType(topodatapb.TabletType_REPLICA)
-
- err := client.SetServingType(topodatapb.TabletType_REPLICA)
- require.NoError(t, err)
- defer func() {
- err = client.SetServingType(topodatapb.TabletType_PRIMARY)
- require.NoError(t, err)
- }()
+ type executeFn func(
+ query string, bindvars map[string]*querypb.BindVariable,
+ ) (*sqltypes.Result, error)
+
+ testCases := []struct {
+ name string
+ getExecuteFn func(qc *framework.QueryClient) executeFn
+ totalConsolidationsTag string
+ }{
+ {
+ name: "Execute",
+ getExecuteFn: func(qc *framework.QueryClient) executeFn { return qc.Execute },
+ totalConsolidationsTag: "Waits/Histograms/Consolidations/Count",
+ },
+ {
+ name: "StreamExecute",
+ getExecuteFn: func(qc *framework.QueryClient) executeFn { return qc.StreamExecute },
+ totalConsolidationsTag: "Waits/Histograms/StreamConsolidations/Count",
+ },
+ }
- initial = framework.FetchInt(framework.DebugVars(), totalConsolidationsTag)
- var wg3 sync.WaitGroup
- wg3.Add(2)
- go func() {
- client.Execute("select sleep(0.5) from dual", nil)
- wg3.Done()
- }()
- go func() {
- client.Execute("select sleep(0.5) from dual", nil)
- wg3.Done()
- }()
- wg3.Wait()
- afterOne = framework.FetchInt(framework.DebugVars(), totalConsolidationsTag)
- assert.Equal(t, initial+1, afterOne, "expected another consolidation")
+ for _, testCase := range testCases {
+ t.Run(testCase.name, func(t *testing.T) {
+ initial := framework.FetchInt(framework.DebugVars(), testCase.totalConsolidationsTag)
+ var wg sync.WaitGroup
+ wg.Add(2)
+ go func() {
+ testCase.getExecuteFn(framework.NewClient())("select sleep(0.5) from dual", nil)
+ wg.Done()
+ }()
+ go func() {
+ testCase.getExecuteFn(framework.NewClient())("select sleep(0.5) from dual", nil)
+ wg.Done()
+ }()
+ wg.Wait()
+ afterOne := framework.FetchInt(framework.DebugVars(), testCase.totalConsolidationsTag)
+ assert.Equal(t, initial+1, afterOne, "expected one consolidation")
+
+ revert := changeVar(t, "Consolidator", tabletenv.NotOnPrimary)
+ defer revert()
+
+ // primary should not do query consolidation
+ var wg2 sync.WaitGroup
+ wg2.Add(2)
+ go func() {
+ testCase.getExecuteFn(framework.NewClient())("select sleep(0.5) from dual", nil)
+ wg2.Done()
+ }()
+ go func() {
+ testCase.getExecuteFn(framework.NewClient())("select sleep(0.5) from dual", nil)
+ wg2.Done()
+ }()
+ wg2.Wait()
+ noNewConsolidations := framework.FetchInt(framework.DebugVars(), testCase.totalConsolidationsTag)
+ assert.Equal(t, afterOne, noNewConsolidations, "expected no new consolidations")
+
+ // become a replica, where query consolidation should happen
+ client := framework.NewClientWithTabletType(topodatapb.TabletType_REPLICA)
+
+ err := client.SetServingType(topodatapb.TabletType_REPLICA)
+ require.NoError(t, err)
+ defer func() {
+ err = client.SetServingType(topodatapb.TabletType_PRIMARY)
+ require.NoError(t, err)
+ }()
+
+ initial = framework.FetchInt(framework.DebugVars(), testCase.totalConsolidationsTag)
+ var wg3 sync.WaitGroup
+ wg3.Add(2)
+ go func() {
+ testCase.getExecuteFn(client)("select sleep(0.5) from dual", nil)
+ wg3.Done()
+ }()
+ go func() {
+ testCase.getExecuteFn(client)("select sleep(0.5) from dual", nil)
+ wg3.Done()
+ }()
+ wg3.Wait()
+ afterOne = framework.FetchInt(framework.DebugVars(), testCase.totalConsolidationsTag)
+ assert.Equal(t, initial+1, afterOne, "expected another consolidation")
+ })
+ }
}
func TestQueryPlanCache(t *testing.T) {
diff --git a/go/vt/vttablet/grpctabletconn/conn.go b/go/vt/vttablet/grpctabletconn/conn.go
index 7ef533f580d..be6d4b855c1 100644
--- a/go/vt/vttablet/grpctabletconn/conn.go
+++ b/go/vt/vttablet/grpctabletconn/conn.go
@@ -473,6 +473,10 @@ func (conn *gRPCQueryClient) BeginExecute(ctx context.Context, target *querypb.T
// BeginStreamExecute starts a transaction and runs an Execute.
func (conn *gRPCQueryClient) BeginStreamExecute(ctx context.Context, target *querypb.Target, preQueries []string, query string, bindVars map[string]*querypb.BindVariable, reservedID int64, options *querypb.ExecuteOptions, callback func(*sqltypes.Result) error) (state queryservice.TransactionState, err error) {
+ // Please see comments in StreamExecute to see how this works.
+ ctx, cancel := context.WithCancel(ctx)
+ defer cancel()
+
conn.mu.RLock()
defer conn.mu.RUnlock()
if conn.cc == nil {
@@ -650,6 +654,9 @@ func (conn *gRPCQueryClient) StreamHealth(ctx context.Context, callback func(*qu
// VStream starts a VReplication stream.
func (conn *gRPCQueryClient) VStream(ctx context.Context, request *binlogdatapb.VStreamRequest, send func([]*binlogdatapb.VEvent) error) error {
+ // Please see comments in StreamExecute to see how this works.
+ ctx, cancel := context.WithCancel(ctx)
+ defer cancel()
stream, err := func() (queryservicepb.Query_VStreamClient, error) {
conn.mu.RLock()
defer conn.mu.RUnlock()
@@ -695,6 +702,9 @@ func (conn *gRPCQueryClient) VStream(ctx context.Context, request *binlogdatapb.
// VStreamRows streams rows of a query from the specified starting point.
func (conn *gRPCQueryClient) VStreamRows(ctx context.Context, request *binlogdatapb.VStreamRowsRequest, send func(*binlogdatapb.VStreamRowsResponse) error) error {
+ // Please see comments in StreamExecute to see how this works.
+ ctx, cancel := context.WithCancel(ctx)
+ defer cancel()
stream, err := func() (queryservicepb.Query_VStreamRowsClient, error) {
conn.mu.RLock()
defer conn.mu.RUnlock()
@@ -737,6 +747,9 @@ func (conn *gRPCQueryClient) VStreamRows(ctx context.Context, request *binlogdat
// VStreamResults streams rows of a query from the specified starting point.
func (conn *gRPCQueryClient) VStreamResults(ctx context.Context, target *querypb.Target, query string, send func(*binlogdatapb.VStreamResultsResponse) error) error {
+ // Please see comments in StreamExecute to see how this works.
+ ctx, cancel := context.WithCancel(ctx)
+ defer cancel()
stream, err := func() (queryservicepb.Query_VStreamResultsClient, error) {
conn.mu.RLock()
defer conn.mu.RUnlock()
@@ -816,6 +829,9 @@ func (conn *gRPCQueryClient) ReserveBeginExecute(ctx context.Context, target *qu
// ReserveBeginStreamExecute implements the queryservice interface
func (conn *gRPCQueryClient) ReserveBeginStreamExecute(ctx context.Context, target *querypb.Target, preQueries []string, postBeginQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, options *querypb.ExecuteOptions, callback func(*sqltypes.Result) error) (state queryservice.ReservedTransactionState, err error) {
+ // Please see comments in StreamExecute to see how this works.
+ ctx, cancel := context.WithCancel(ctx)
+ defer cancel()
conn.mu.RLock()
defer conn.mu.RUnlock()
if conn.cc == nil {
@@ -927,6 +943,9 @@ func (conn *gRPCQueryClient) ReserveExecute(ctx context.Context, target *querypb
// ReserveStreamExecute implements the queryservice interface
func (conn *gRPCQueryClient) ReserveStreamExecute(ctx context.Context, target *querypb.Target, preQueries []string, sql string, bindVariables map[string]*querypb.BindVariable, transactionID int64, options *querypb.ExecuteOptions, callback func(*sqltypes.Result) error) (state queryservice.ReservedState, err error) {
+ // Please see comments in StreamExecute to see how this works.
+ ctx, cancel := context.WithCancel(ctx)
+ defer cancel()
conn.mu.RLock()
defer conn.mu.RUnlock()
if conn.cc == nil {
@@ -1020,6 +1039,9 @@ func (conn *gRPCQueryClient) Release(ctx context.Context, target *querypb.Target
// GetSchema implements the queryservice interface
func (conn *gRPCQueryClient) GetSchema(ctx context.Context, target *querypb.Target, tableType querypb.SchemaTableType, tableNames []string, callback func(schemaRes *querypb.GetSchemaResponse) error) error {
+ // Please see comments in StreamExecute to see how this works.
+ ctx, cancel := context.WithCancel(ctx)
+ defer cancel()
conn.mu.RLock()
defer conn.mu.RUnlock()
if conn.cc == nil {
diff --git a/go/vt/vttablet/grpctabletconn/conn_test.go b/go/vt/vttablet/grpctabletconn/conn_test.go
index fb182bfe2e4..39a67dfbdca 100644
--- a/go/vt/vttablet/grpctabletconn/conn_test.go
+++ b/go/vt/vttablet/grpctabletconn/conn_test.go
@@ -17,13 +17,21 @@ limitations under the License.
package grpctabletconn
import (
+ "context"
+ "fmt"
"io"
"net"
"os"
+ "sync"
"testing"
+ "github.com/stretchr/testify/require"
"google.golang.org/grpc"
+ "vitess.io/vitess/go/sqltypes"
+ binlogdatapb "vitess.io/vitess/go/vt/proto/binlogdata"
+ querypb "vitess.io/vitess/go/vt/proto/query"
+ queryservicepb "vitess.io/vitess/go/vt/proto/queryservice"
"vitess.io/vitess/go/vt/servenv"
"vitess.io/vitess/go/vt/vttablet/grpcqueryservice"
"vitess.io/vitess/go/vt/vttablet/tabletconntest"
@@ -113,3 +121,101 @@ func TestGRPCTabletAuthConn(t *testing.T) {
},
}, service, f)
}
+
+// mockQueryClient is a mock query client that returns an error from Streaming calls,
+// but only after storing the context that was passed to the RPC.
+type mockQueryClient struct {
+ lastCallCtx context.Context
+ queryservicepb.QueryClient
+}
+
+func (m *mockQueryClient) StreamExecute(ctx context.Context, in *querypb.StreamExecuteRequest, opts ...grpc.CallOption) (queryservicepb.Query_StreamExecuteClient, error) {
+ m.lastCallCtx = ctx
+ return nil, fmt.Errorf("A general error")
+}
+
+func (m *mockQueryClient) BeginStreamExecute(ctx context.Context, in *querypb.BeginStreamExecuteRequest, opts ...grpc.CallOption) (queryservicepb.Query_BeginStreamExecuteClient, error) {
+ m.lastCallCtx = ctx
+ return nil, fmt.Errorf("A general error")
+}
+
+func (m *mockQueryClient) ReserveStreamExecute(ctx context.Context, in *querypb.ReserveStreamExecuteRequest, opts ...grpc.CallOption) (queryservicepb.Query_ReserveStreamExecuteClient, error) {
+ m.lastCallCtx = ctx
+ return nil, fmt.Errorf("A general error")
+}
+
+func (m *mockQueryClient) ReserveBeginStreamExecute(ctx context.Context, in *querypb.ReserveBeginStreamExecuteRequest, opts ...grpc.CallOption) (queryservicepb.Query_ReserveBeginStreamExecuteClient, error) {
+ m.lastCallCtx = ctx
+ return nil, fmt.Errorf("A general error")
+}
+
+func (m *mockQueryClient) VStream(ctx context.Context, in *binlogdatapb.VStreamRequest, opts ...grpc.CallOption) (queryservicepb.Query_VStreamClient, error) {
+ m.lastCallCtx = ctx
+ return nil, fmt.Errorf("A general error")
+}
+
+func (m *mockQueryClient) VStreamRows(ctx context.Context, in *binlogdatapb.VStreamRowsRequest, opts ...grpc.CallOption) (queryservicepb.Query_VStreamRowsClient, error) {
+ m.lastCallCtx = ctx
+ return nil, fmt.Errorf("A general error")
+}
+
+func (m *mockQueryClient) VStreamResults(ctx context.Context, in *binlogdatapb.VStreamResultsRequest, opts ...grpc.CallOption) (queryservicepb.Query_VStreamResultsClient, error) {
+ m.lastCallCtx = ctx
+ return nil, fmt.Errorf("A general error")
+}
+
+func (m *mockQueryClient) GetSchema(ctx context.Context, in *querypb.GetSchemaRequest, opts ...grpc.CallOption) (queryservicepb.Query_GetSchemaClient, error) {
+ m.lastCallCtx = ctx
+ return nil, fmt.Errorf("A general error")
+}
+
+var _ queryservicepb.QueryClient = (*mockQueryClient)(nil)
+
+// TestGoRoutineLeakPrevention tests that after all the RPCs that stream queries, we end up closing the context that was passed to it, to prevent go routines from being leaked.
+func TestGoRoutineLeakPrevention(t *testing.T) {
+ mqc := &mockQueryClient{}
+ qc := &gRPCQueryClient{
+ mu: sync.RWMutex{},
+ cc: &grpc.ClientConn{},
+ c: mqc,
+ }
+ _ = qc.StreamExecute(context.Background(), nil, "", nil, 0, 0, nil, func(result *sqltypes.Result) error {
+ return nil
+ })
+ require.Error(t, mqc.lastCallCtx.Err())
+
+ _, _ = qc.BeginStreamExecute(context.Background(), nil, nil, "", nil, 0, nil, func(result *sqltypes.Result) error {
+ return nil
+ })
+ require.Error(t, mqc.lastCallCtx.Err())
+
+ _, _ = qc.ReserveBeginStreamExecute(context.Background(), nil, nil, nil, "", nil, nil, func(result *sqltypes.Result) error {
+ return nil
+ })
+ require.Error(t, mqc.lastCallCtx.Err())
+
+ _, _ = qc.ReserveStreamExecute(context.Background(), nil, nil, "", nil, 0, nil, func(result *sqltypes.Result) error {
+ return nil
+ })
+ require.Error(t, mqc.lastCallCtx.Err())
+
+ _ = qc.VStream(context.Background(), &binlogdatapb.VStreamRequest{}, func(events []*binlogdatapb.VEvent) error {
+ return nil
+ })
+ require.Error(t, mqc.lastCallCtx.Err())
+
+ _ = qc.VStreamRows(context.Background(), &binlogdatapb.VStreamRowsRequest{}, func(response *binlogdatapb.VStreamRowsResponse) error {
+ return nil
+ })
+ require.Error(t, mqc.lastCallCtx.Err())
+
+ _ = qc.VStreamResults(context.Background(), nil, "", func(response *binlogdatapb.VStreamResultsResponse) error {
+ return nil
+ })
+ require.Error(t, mqc.lastCallCtx.Err())
+
+ _ = qc.GetSchema(context.Background(), nil, querypb.SchemaTableType_TABLES, nil, func(schemaRes *querypb.GetSchemaResponse) error {
+ return nil
+ })
+ require.Error(t, mqc.lastCallCtx.Err())
+}
diff --git a/go/vt/vttablet/tabletmanager/rpc_query.go b/go/vt/vttablet/tabletmanager/rpc_query.go
index 835cb698d8b..254d370091f 100644
--- a/go/vt/vttablet/tabletmanager/rpc_query.go
+++ b/go/vt/vttablet/tabletmanager/rpc_query.go
@@ -23,11 +23,50 @@ import (
"vitess.io/vitess/go/sqltypes"
"vitess.io/vitess/go/vt/log"
"vitess.io/vitess/go/vt/sqlparser"
+ "vitess.io/vitess/go/vt/vterrors"
querypb "vitess.io/vitess/go/vt/proto/query"
tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
+ "vitess.io/vitess/go/vt/proto/vtrpc"
)
+// analyzeExecuteFetchAsDbaMultiQuery reutrns 'true' when at least one of the queries
+// in the given SQL has a `/*vt+ allowZeroInDate=true */` directive.
+func analyzeExecuteFetchAsDbaMultiQuery(sql string) (queries []string, parseable bool, countCreate int, allowZeroInDate bool, err error) {
+ queries, err = sqlparser.SplitStatementToPieces(sql)
+ if err != nil {
+ return nil, false, 0, false, err
+ }
+ if len(queries) == 0 {
+ return nil, false, 0, false, vterrors.Errorf(vtrpc.Code_INVALID_ARGUMENT, "no statements found in query: %s", sql)
+ }
+ parseable = true
+ for _, query := range queries {
+ // Some of the queries we receive here are legitimately non-parseable by our
+ // current parser, such as `CHANGE REPLICATION SOURCE TO...`. We must allow
+ // them and so we skip parsing errors.
+ stmt, err := sqlparser.Parse(query)
+ if err != nil {
+ parseable = false
+ continue
+ }
+ switch stmt.(type) {
+ case *sqlparser.CreateTable, *sqlparser.CreateView:
+ countCreate++
+ default:
+ }
+
+ if cmnt, ok := stmt.(sqlparser.Commented); ok {
+ directives := cmnt.GetParsedComments().Directives()
+ if directives.IsSet("allowZeroInDate") {
+ allowZeroInDate = true
+ }
+ }
+
+ }
+ return queries, parseable, countCreate, allowZeroInDate, nil
+}
+
// ExecuteFetchAsDba will execute the given query, possibly disabling binlogs and reload schema.
func (tm *TabletManager) ExecuteFetchAsDba(ctx context.Context, req *tabletmanagerdatapb.ExecuteFetchAsDbaRequest) (*querypb.QueryResult, error) {
// get a connection
@@ -51,20 +90,34 @@ func (tm *TabletManager) ExecuteFetchAsDba(ctx context.Context, req *tabletmanag
_, _ = conn.ExecuteFetch("USE "+sqlescape.EscapeID(req.DbName), 1, false)
}
- // Handle special possible directives
- var directives *sqlparser.CommentDirectives
- if stmt, err := sqlparser.Parse(string(req.Query)); err == nil {
- if cmnt, ok := stmt.(sqlparser.Commented); ok {
- directives = cmnt.GetParsedComments().Directives()
+ statements, _, countCreate, allowZeroInDate, err := analyzeExecuteFetchAsDbaMultiQuery(string(req.Query))
+ if err != nil {
+ return nil, err
+ }
+ if len(statements) > 1 {
+ // Up to v19, we allow multi-statement SQL in ExecuteFetchAsDba, but only for the specific case
+ // where all statements are CREATE TABLE or CREATE VIEW. This is to support `ApplySchema --batch-size`.
+ // In v20, we will not support multi statements whatsoever.
+ // v20 will throw an error by virtua of using ExecuteFetch instead of ExecuteFetchMulti.
+ if countCreate != len(statements) {
+ return nil, vterrors.Errorf(vtrpc.Code_INVALID_ARGUMENT, "multi statement queries are not supported in ExecuteFetchAsDba unless all are CREATE TABLE or CREATE VIEW")
}
}
- if directives.IsSet("allowZeroInDate") {
+ if allowZeroInDate {
if _, err := conn.ExecuteFetch("set @@session.sql_mode=REPLACE(REPLACE(@@session.sql_mode, 'NO_ZERO_DATE', ''), 'NO_ZERO_IN_DATE', '')", 1, false); err != nil {
return nil, err
}
}
- // run the query
- result, err := conn.ExecuteFetch(string(req.Query), int(req.MaxRows), true /*wantFields*/)
+ // TODO(shlomi): we use ExecuteFetchMulti for backwards compatibility. In v20 we will not accept
+ // multi statement queries in ExecuteFetchAsDBA. This will be rewritten as:
+ // (in v20): result, err := ExecuteFetch(uq, int(req.MaxRows), true /*wantFields*/)
+ result, more, err := conn.ExecuteFetchMulti(string(req.Query), int(req.MaxRows), true /*wantFields*/)
+ for more {
+ _, more, _, err = conn.ReadQueryResult(0, false)
+ if err != nil {
+ return nil, err
+ }
+ }
// re-enable binlogs if necessary
if req.DisableBinlogs && !conn.IsClosed() {
diff --git a/go/vt/vttablet/tabletmanager/rpc_query_test.go b/go/vt/vttablet/tabletmanager/rpc_query_test.go
index f6167e24917..0490bea4798 100644
--- a/go/vt/vttablet/tabletmanager/rpc_query_test.go
+++ b/go/vt/vttablet/tabletmanager/rpc_query_test.go
@@ -21,6 +21,7 @@ import (
"strings"
"testing"
+ "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"vitess.io/vitess/go/mysql"
@@ -33,6 +34,83 @@ import (
tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
)
+func TestAnalyzeExecuteFetchAsDbaMultiQuery(t *testing.T) {
+ tcases := []struct {
+ query string
+ count int
+ parseable bool
+ allowZeroInDate bool
+ allCreate bool
+ expectErr bool
+ }{
+ {
+ query: "",
+ expectErr: true,
+ },
+ {
+ query: "select * from t1 ; select * from t2",
+ count: 2,
+ parseable: true,
+ },
+ {
+ query: "create table t(id int)",
+ count: 1,
+ allCreate: true,
+ parseable: true,
+ },
+ {
+ query: "create table t(id int); create view v as select 1 from dual",
+ count: 2,
+ allCreate: true,
+ parseable: true,
+ },
+ {
+ query: "create table t(id int); create view v as select 1 from dual; drop table t3",
+ count: 3,
+ allCreate: false,
+ parseable: true,
+ },
+ {
+ query: "create /*vt+ allowZeroInDate=true */ table t (id int)",
+ count: 1,
+ allCreate: true,
+ allowZeroInDate: true,
+ parseable: true,
+ },
+ {
+ query: "create table a (id int) ; create /*vt+ allowZeroInDate=true */ table b (id int)",
+ count: 2,
+ allCreate: true,
+ allowZeroInDate: true,
+ parseable: true,
+ },
+ {
+ query: "stop replica; start replica",
+ count: 2,
+ parseable: false,
+ },
+ {
+ query: "create table a (id int) ; --comment ; what",
+ count: 3,
+ parseable: false,
+ },
+ }
+ for _, tcase := range tcases {
+ t.Run(tcase.query, func(t *testing.T) {
+ queries, parseable, countCreate, allowZeroInDate, err := analyzeExecuteFetchAsDbaMultiQuery(tcase.query)
+ if tcase.expectErr {
+ assert.Error(t, err)
+ } else {
+ assert.NoError(t, err)
+ assert.Equal(t, tcase.count, len(queries))
+ assert.Equal(t, tcase.parseable, parseable)
+ assert.Equal(t, tcase.allCreate, (countCreate == len(queries)))
+ assert.Equal(t, tcase.allowZeroInDate, allowZeroInDate)
+ }
+ })
+ }
+}
+
func TestTabletManager_ExecuteFetchAsDba(t *testing.T) {
ctx := context.Background()
cp := mysql.ConnParams{}
diff --git a/go/vt/vttablet/tabletserver/query_executor.go b/go/vt/vttablet/tabletserver/query_executor.go
index cf26d7c5019..efd872e1f1d 100644
--- a/go/vt/vttablet/tabletserver/query_executor.go
+++ b/go/vt/vttablet/tabletserver/query_executor.go
@@ -436,7 +436,7 @@ func (qre *QueryExecutor) Stream(callback StreamCallback) error {
if consolidator := qre.tsv.qe.streamConsolidator; consolidator != nil {
if qre.connID == 0 && qre.plan.PlanID == p.PlanSelectStream && qre.shouldConsolidate() {
- return consolidator.Consolidate(qre.logStats, sqlWithoutComments, callback,
+ return consolidator.Consolidate(qre.tsv.stats.WaitTimings, qre.logStats, sqlWithoutComments, callback,
func(callback StreamCallback) error {
dbConn, err := qre.getStreamConn()
if err != nil {
diff --git a/go/vt/vttablet/tabletserver/stream_consolidator.go b/go/vt/vttablet/tabletserver/stream_consolidator.go
index 497c9011040..22888419dc9 100644
--- a/go/vt/vttablet/tabletserver/stream_consolidator.go
+++ b/go/vt/vttablet/tabletserver/stream_consolidator.go
@@ -19,9 +19,11 @@ package tabletserver
import (
"sync"
"sync/atomic"
+ "time"
"vitess.io/vitess/go/sqltypes"
vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc"
+ "vitess.io/vitess/go/vt/servenv"
"vitess.io/vitess/go/vt/vterrors"
"vitess.io/vitess/go/vt/vttablet/tabletserver/tabletenv"
)
@@ -70,7 +72,7 @@ func (sc *StreamConsolidator) SetBlocking(block bool) {
// `callback`. A `leaderCallback` must also be supplied: this function must perform the actual
// query in the upstream MySQL server, yielding results into the modified callback that it receives
// as an argument.
-func (sc *StreamConsolidator) Consolidate(logStats *tabletenv.LogStats, sql string, callback StreamCallback, leaderCallback func(StreamCallback) error) error {
+func (sc *StreamConsolidator) Consolidate(waitTimings *servenv.TimingsWrapper, logStats *tabletenv.LogStats, sql string, callback StreamCallback, leaderCallback func(StreamCallback) error) error {
var (
inflight *streamInFlight
catchup []*sqltypes.Result
@@ -100,9 +102,11 @@ func (sc *StreamConsolidator) Consolidate(logStats *tabletenv.LogStats, sql stri
// if we have a followChan, we're following up on a query that is already being served
if followChan != nil {
+ startTime := time.Now()
defer func() {
memchange := inflight.unfollow(followChan, sc.cleanup)
atomic.AddInt64(&sc.memory, memchange)
+ waitTimings.Record("StreamConsolidations", startTime)
}()
logStats.QuerySources |= tabletenv.QuerySourceConsolidator
diff --git a/go/vt/vttablet/tabletserver/stream_consolidator_flaky_test.go b/go/vt/vttablet/tabletserver/stream_consolidator_flaky_test.go
index 0c903933412..caa519cc477 100644
--- a/go/vt/vttablet/tabletserver/stream_consolidator_flaky_test.go
+++ b/go/vt/vttablet/tabletserver/stream_consolidator_flaky_test.go
@@ -28,6 +28,7 @@ import (
"github.com/stretchr/testify/require"
+ "vitess.io/vitess/go/vt/servenv"
"vitess.io/vitess/go/vt/vttablet/tabletserver/tabletenv"
"vitess.io/vitess/go/sqltypes"
@@ -123,10 +124,12 @@ func (ct *consolidationTest) run(workers int, generateCallback func(int) (string
go func(worker int) {
defer wg.Done()
+ exporter := servenv.NewExporter("ConsolidatorTest", "")
+ timings := exporter.NewTimings("ConsolidatorWaits", "", "StreamConsolidations")
logStats := tabletenv.NewLogStats(context.Background(), "StreamConsolidation")
query, callback := generateCallback(worker)
start := time.Now()
- err := ct.cc.Consolidate(logStats, query, func(result *sqltypes.Result) error {
+ err := ct.cc.Consolidate(timings, logStats, query, func(result *sqltypes.Result) error {
cr := ct.results[worker]
cr.items = append(cr.items, result)
atomic.AddInt64(&cr.count, 1)
diff --git a/go/vt/vttablet/tabletserver/tabletserver.go b/go/vt/vttablet/tabletserver/tabletserver.go
index 090098aded6..681c1c33fd0 100644
--- a/go/vt/vttablet/tabletserver/tabletserver.go
+++ b/go/vt/vttablet/tabletserver/tabletserver.go
@@ -886,6 +886,7 @@ func (tsv *TabletServer) streamExecute(ctx context.Context, target *querypb.Targ
ctx: ctx,
logStats: logStats,
tsv: tsv,
+ tabletType: target.GetTabletType(),
setting: connSetting,
}
return qre.Stream(callback)
diff --git a/go/vt/wrangler/traffic_switcher.go b/go/vt/wrangler/traffic_switcher.go
index 52ade3de64d..ec7914e51ce 100644
--- a/go/vt/wrangler/traffic_switcher.go
+++ b/go/vt/wrangler/traffic_switcher.go
@@ -1546,7 +1546,8 @@ func (ts *trafficSwitcher) deleteShardRoutingRules(ctx context.Context) error {
func (ts *trafficSwitcher) startReverseVReplication(ctx context.Context) error {
return ts.ForAllSources(func(source *workflow.MigrationSource) error {
- query := fmt.Sprintf("update _vt.vreplication set state='Running', message='' where db_name=%s", encodeString(source.GetPrimary().DbName()))
+ query := fmt.Sprintf("update _vt.vreplication set state='Running', message='' where db_name=%s and workflow=%s",
+ encodeString(source.GetPrimary().DbName()), encodeString(ts.ReverseWorkflowName()))
_, err := ts.VReplicationExec(ctx, source.GetPrimary().Alias, query)
return err
})
diff --git a/go/vt/wrangler/traffic_switcher_env_test.go b/go/vt/wrangler/traffic_switcher_env_test.go
index 32ddaa9af78..7d886961e67 100644
--- a/go/vt/wrangler/traffic_switcher_env_test.go
+++ b/go/vt/wrangler/traffic_switcher_env_test.go
@@ -558,7 +558,7 @@ func (tme *testShardMigraterEnv) expectStartReverseVReplication() {
// NOTE: this is not a faithful reproduction of what should happen.
// The ids returned are not accurate.
for _, dbclient := range tme.dbSourceClients {
- dbclient.addQuery("select id from _vt.vreplication where db_name = 'vt_ks'", resultid34, nil)
+ dbclient.addQuery("select id from _vt.vreplication where db_name = 'vt_ks' and workflow = 'test_reverse'", resultid34, nil)
dbclient.addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
dbclient.addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
dbclient.addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
diff --git a/go/vt/wrangler/traffic_switcher_test.go b/go/vt/wrangler/traffic_switcher_test.go
index 1c59ae3140d..10211894676 100644
--- a/go/vt/wrangler/traffic_switcher_test.go
+++ b/go/vt/wrangler/traffic_switcher_test.go
@@ -432,11 +432,11 @@ func TestTableMigrateMainflow(t *testing.T) {
createJournals()
startReverseVReplication := func() {
- tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks1'", resultid34, nil)
+ tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks1' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[0].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
- tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks1'", resultid34, nil)
+ tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks1' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[1].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
@@ -729,11 +729,11 @@ func TestShardMigrateMainflow(t *testing.T) {
createJournals()
startReverseVReplication := func() {
- tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks'", resultid34, nil)
+ tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[0].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
- tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks'", resultid34, nil)
+ tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[1].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
@@ -1222,11 +1222,11 @@ func TestTableMigrateJournalExists(t *testing.T) {
tme.dbSourceClients[1].addQueryRE(journal2, &sqltypes.Result{}, nil)
// mi.startReverseVReplication
- tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks1'", resultid34, nil)
+ tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks1' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[0].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
- tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks1'", resultid34, nil)
+ tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks1' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[1].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
@@ -1301,11 +1301,11 @@ func TestShardMigrateJournalExists(t *testing.T) {
tme.dbSourceClients[1].addQueryRE(journal2, &sqltypes.Result{}, nil)
// mi.startReverseVReplication
- tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks'", resultid34, nil)
+ tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[0].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
- tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks'", resultid34, nil)
+ tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[1].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
@@ -2032,11 +2032,11 @@ func TestShardMigrateNoAvailableTabletsForReverseReplication(t *testing.T) {
createJournals()
startReverseVReplication := func() {
- tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks'", resultid34, nil)
+ tme.dbSourceClients[0].addQuery("select id from _vt.vreplication where db_name = 'vt_ks' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[0].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[0].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
- tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks'", resultid34, nil)
+ tme.dbSourceClients[1].addQuery("select id from _vt.vreplication where db_name = 'vt_ks' and workflow = 'test_reverse'", resultid34, nil)
tme.dbSourceClients[1].addQuery("update _vt.vreplication set state = 'Running', message = '' where id in (3, 4)", &sqltypes.Result{}, nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 3", runningResult(3), nil)
tme.dbSourceClients[1].addQuery("select * from _vt.vreplication where id = 4", runningResult(4), nil)
diff --git a/java/client/pom.xml b/java/client/pom.xml
index 0dbcf3dfc95..eb4957ae621 100644
--- a/java/client/pom.xml
+++ b/java/client/pom.xml
@@ -5,7 +5,7 @@
io.vitess
vitess-parent
- 16.0.7-SNAPSHOT
+ 16.0.8-SNAPSHOT
vitess-client
diff --git a/java/example/pom.xml b/java/example/pom.xml
index 9e08f976f04..a07057c58e8 100644
--- a/java/example/pom.xml
+++ b/java/example/pom.xml
@@ -5,7 +5,7 @@
io.vitess
vitess-parent
- 16.0.7-SNAPSHOT
+ 16.0.8-SNAPSHOT
vitess-example
diff --git a/java/grpc-client/pom.xml b/java/grpc-client/pom.xml
index bd9427ff9c7..88b23401e80 100644
--- a/java/grpc-client/pom.xml
+++ b/java/grpc-client/pom.xml
@@ -5,7 +5,7 @@
io.vitess
vitess-parent
- 16.0.7-SNAPSHOT
+ 16.0.8-SNAPSHOT
vitess-grpc-client
diff --git a/java/jdbc/pom.xml b/java/jdbc/pom.xml
index dd8b4268e24..bdef0a615e9 100644
--- a/java/jdbc/pom.xml
+++ b/java/jdbc/pom.xml
@@ -5,7 +5,7 @@
io.vitess
vitess-parent
- 16.0.7-SNAPSHOT
+ 16.0.8-SNAPSHOT
vitess-jdbc
diff --git a/java/pom.xml b/java/pom.xml
index 8e5ec609182..64595f0b165 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -11,7 +11,7 @@
io.vitess
vitess-parent
- 16.0.7-SNAPSHOT
+ 16.0.8-SNAPSHOT
pom
Vitess Java Client libraries [Parent]
@@ -69,8 +69,8 @@
1.44.0
- 4.1.72.Final
- 2.0.46.Final
+ 4.1.94.Final
+ 2.0.61.Final
3.19.6
3.19.4
diff --git a/test.go b/test.go
index c899caf4c16..1af5f6c05ed 100755
--- a/test.go
+++ b/test.go
@@ -77,7 +77,7 @@ For example:
// Flags
var (
flavor = flag.String("flavor", "mysql57", "comma-separated bootstrap flavor(s) to run against (when using Docker mode). Available flavors: all,"+flavors)
- bootstrapVersion = flag.String("bootstrap-version", "14.10", "the version identifier to use for the docker images")
+ bootstrapVersion = flag.String("bootstrap-version", "14.12", "the version identifier to use for the docker images")
runCount = flag.Int("runs", 1, "run each test this many times")
retryMax = flag.Int("retry", 3, "max number of retries, to detect flaky tests")
logPass = flag.Bool("log-pass", false, "log test output even if it passes")
diff --git a/test/config.json b/test/config.json
index cdb39f95d2d..c0e3cc50333 100644
--- a/test/config.json
+++ b/test/config.json
@@ -109,7 +109,7 @@
"RetryMax": 1,
"Tags": []
},
- "backup_mysqlctld": {
+ "backup_mysqlctld": {
"File": "unused.go",
"Args": ["vitess.io/vitess/go/test/endtoend/backup/mysqlctld", "-timeout", "30m"],
"Command": [],
@@ -520,7 +520,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 1,
- "Tags": []
+ "Tags": ["upgrade_downgrade_query_serving_queries"]
},
"vtgate_queries_aggregation": {
"File": "unused.go",
@@ -529,7 +529,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 2,
- "Tags": []
+ "Tags": ["upgrade_downgrade_query_serving_queries"]
},
"vtgate_queries_foundrows": {
"File": "unused.go",
@@ -538,7 +538,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 2,
- "Tags": []
+ "Tags": ["upgrade_downgrade_query_serving_queries"]
},
"vtgate_queries_informationschema": {
"File": "unused.go",
@@ -547,7 +547,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 2,
- "Tags": []
+ "Tags": ["upgrade_downgrade_query_serving_queries"]
},
"vtgate_queries_misc": {
"File": "unused.go",
@@ -556,7 +556,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 1,
- "Tags": []
+ "Tags": ["upgrade_downgrade_query_serving_queries"]
},
"vtgate_queries_timeout": {
"File": "unused.go",
@@ -565,7 +565,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 1,
- "Tags": []
+ "Tags": [""]
},
"vtgate_queries_normalize": {
"File": "unused.go",
@@ -574,7 +574,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 2,
- "Tags": []
+ "Tags": ["upgrade_downgrade_query_serving_queries"]
},
"vtgate_queries_orderby": {
"File": "unused.go",
@@ -610,7 +610,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 2,
- "Tags": []
+ "Tags": ["upgrade_downgrade_query_serving_queries"]
},
"vtgate_queries_vexplain": {
"File": "unused.go",
@@ -619,7 +619,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 2,
- "Tags": []
+ "Tags": ["upgrade_downgrade_query_serving_queries"]
},
"vtgate_queries_reference": {
"File": "unused.go",
@@ -628,7 +628,7 @@
"Manual": false,
"Shard": "vtgate_queries",
"RetryMax": 1,
- "Tags": []
+ "Tags": [""]
},
"vtgate_concurrentdml": {
"File": "unused.go",
diff --git a/test/templates/cluster_endtoend_test.tpl b/test/templates/cluster_endtoend_test.tpl
index 8850650bd1d..f025d8c46dd 100644
--- a/test/templates/cluster_endtoend_test.tpl
+++ b/test/templates/cluster_endtoend_test.tpl
@@ -45,6 +45,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -63,7 +65,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -98,9 +100,9 @@ jobs:
{{else}}
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
diff --git a/test/templates/cluster_endtoend_test_docker.tpl b/test/templates/cluster_endtoend_test_docker.tpl
index 3edfae4308c..1603fa9e7c0 100644
--- a/test/templates/cluster_endtoend_test_docker.tpl
+++ b/test/templates/cluster_endtoend_test_docker.tpl
@@ -37,6 +37,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -52,7 +54,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
diff --git a/test/templates/cluster_endtoend_test_mysql57.tpl b/test/templates/cluster_endtoend_test_mysql57.tpl
index 593d0d03e45..2f33cf67cbb 100644
--- a/test/templates/cluster_endtoend_test_mysql57.tpl
+++ b/test/templates/cluster_endtoend_test_mysql57.tpl
@@ -50,6 +50,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
@@ -68,7 +70,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -100,9 +102,9 @@ jobs:
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
diff --git a/test/templates/cluster_endtoend_test_self_hosted.tpl b/test/templates/cluster_endtoend_test_self_hosted.tpl
index 8095d5ff0b7..de4ad81398a 100644
--- a/test/templates/cluster_endtoend_test_self_hosted.tpl
+++ b/test/templates/cluster_endtoend_test_self_hosted.tpl
@@ -40,6 +40,8 @@ jobs:
filters: |
end_to_end:
- 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
- 'test.go'
- 'Makefile'
- 'build.env'
diff --git a/test/templates/dockerfile.tpl b/test/templates/dockerfile.tpl
index d5ca3c81b1c..0879c940c05 100644
--- a/test/templates/dockerfile.tpl
+++ b/test/templates/dockerfile.tpl
@@ -1,4 +1,4 @@
-ARG bootstrap_version=14.10
+ARG bootstrap_version=14.12
ARG image="vitess/bootstrap:${bootstrap_version}-{{.Platform}}"
FROM "${image}"
diff --git a/test/templates/unit_test.tpl b/test/templates/unit_test.tpl
index fd4c77ac3d6..70d27ee81e4 100644
--- a/test/templates/unit_test.tpl
+++ b/test/templates/unit_test.tpl
@@ -59,7 +59,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
uses: actions/setup-go@v3
with:
- go-version: 1.20.11
+ go-version: 1.20.13
- name: Set up python
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
@@ -90,10 +90,10 @@ jobs:
{{if (eq .Platform "mysql57")}}
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# mysql57
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
@@ -106,10 +106,10 @@ jobs:
{{if (eq .Platform "mysql80")}}
# Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# mysql80
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update