Skip to content

Commit aa4be6e

Browse files
committed
Merge remote-tracking branch 'origin/master' into fix-topo-import-to-tests
* origin/master: (32 commits) test: Fix race condition in TestStreamRowsHeartbeat (vitessio#18414) VReplication: Improve permission check logic on external tablets on SwitchTraffic (vitessio#18348) Perform post copy actions in atomic copy (vitessio#18411) Update `operator.yaml` (vitessio#18364) Feature(onlineddl): Add shard-specific completion to online ddl (vitessio#18331) Set parsed comments in operator for subqueries (vitessio#18369) `vtorc`: move shard primary timestamp to time type (vitessio#18401) `vtorc`: rename `isClusterWideRecovery` -> `isShardWideRecovery` (vitessio#18351) `vtorc`: remove dupe keyspace/shard in replication analysis (vitessio#18395) Topo: Add NamedLock test for zk2 and consul and get them passing (vitessio#18407) Handle MySQL 9.x as New Flavor in getFlavor() (vitessio#18399) Add support for sending grpc server backend metrics via ORCA (vitessio#18282) asthelpergen: add design documentation (vitessio#18403) `vtorc`: add keyspace/shard labels to recoveries stats (vitessio#18304) `vtorc`: cleanup `database_instance` location fields (vitessio#18339) avoid derived tables for UNION when possible (vitessio#18393) [Bugfix] Broken Heartbeat system in Row Streamer (vitessio#18390) Update MAINTAINERS.md (vitessio#18394) move vmg to emeritus (vitessio#18388) Make sure to check if the server is closed in etcd2topo (vitessio#18352) ...
2 parents 11626f7 + 826d78d commit aa4be6e

159 files changed

Lines changed: 10938 additions & 8348 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
* @deepthi
2-
bootstrap.sh @deepthi @frouioui @vmg
2+
bootstrap.sh @deepthi @frouioui
33
go.mod @deepthi @harshit-gangal @mattlord @rohit-nayak-ps @systay @frouioui
44
go.sum @deepthi @harshit-gangal @mattlord @rohit-nayak-ps @systay @frouioui
55
/.github/ @deepthi @mattlord @rohit-nayak-ps @frouioui
@@ -14,7 +14,6 @@ go.sum @deepthi @harshit-gangal @mattlord @rohit-nayak-ps @systay @frouioui
1414
/examples/operator @GuptaManan100 @frouioui @mattlord
1515
/examples/region_sharding @deepthi @mattlord
1616
/java/ @harshit-gangal
17-
/go/cache @vmg
1817
/go/cmd @deepthi @mattlord
1918
/go/cmd/vtadmin @notfelineit
2019
/go/cmd/vtctldclient @mattlord @notfelineit
@@ -26,7 +25,7 @@ go.sum @deepthi @harshit-gangal @mattlord @rohit-nayak-ps @systay @frouioui
2625
/go/mysql @harshit-gangal @systay @mattlord
2726
/go/pools @deepthi @harshit-gangal
2827
/go/protoutil @deepthi @mattlord
29-
/go/sqltypes @harshit-gangal @shlomi-noach @vmg
28+
/go/sqltypes @harshit-gangal @shlomi-noach
3029
/go/test/endtoend/onlineddl @rohit-nayak-ps @shlomi-noach
3130
/go/test/endtoend/messaging @mattlord @rohit-nayak-ps @derekperkins
3231
/go/test/endtoend/schemadiff @shlomi-noach @mattlord
@@ -64,7 +63,7 @@ go.sum @deepthi @harshit-gangal @mattlord @rohit-nayak-ps @systay @frouioui
6463
/go/vt/vtgate/endtoend/*vstream* @rohit-nayak-ps @mattlord @shlomi-noach @notfelineit
6564
/go/vt/vtgate/planbuilder @harshit-gangal @systay @frouioui @GuptaManan100 @arthurschreiber
6665
/go/vt/vtgate/*vstream* @rohit-nayak-ps @mattlord @shlomi-noach @notfelineit
67-
/go/vt/vtgate/evalengine @dbussink @vmg @systay
66+
/go/vt/vtgate/evalengine @dbussink @systay
6867
/go/vt/vtorc @deepthi @shlomi-noach @GuptaManan100 @timvaillancourt
6968
/go/vt/vttablet/*conn* @harshit-gangal @systay
7069
/go/vt/vttablet/endtoend @harshit-gangal @mattlord @rohit-nayak-ps @systay
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
# DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows"
2+
3+
name: Cluster (vreplication_vdiff2)
4+
on: [push, pull_request]
5+
concurrency:
6+
group: format('{0}-{1}', ${{ github.ref }}, 'Cluster (vreplication_vdiff2)')
7+
cancel-in-progress: true
8+
9+
permissions: read-all
10+
11+
env:
12+
LAUNCHABLE_ORGANIZATION: "vitess"
13+
LAUNCHABLE_WORKSPACE: "vitess-app"
14+
GITHUB_PR_HEAD_SHA: "${{ github.event.pull_request.head.sha }}"
15+
16+
jobs:
17+
build:
18+
timeout-minutes: 60
19+
name: Run endtoend tests on Cluster (vreplication_vdiff2)
20+
runs-on: ubuntu-24.04
21+
22+
steps:
23+
- name: Skip CI
24+
run: |
25+
if [[ "${{contains( github.event.pull_request.labels.*.name, 'Skip CI')}}" == "true" ]]; then
26+
echo "skipping CI due to the 'Skip CI' label"
27+
exit 1
28+
fi
29+
30+
- name: Check if workflow needs to be skipped
31+
id: skip-workflow
32+
run: |
33+
skip='false'
34+
if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then
35+
skip='true'
36+
fi
37+
echo Skip ${skip}
38+
echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT
39+
40+
PR_DATA=$(curl -s\
41+
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
42+
-H "Accept: application/vnd.github.v3+json" \
43+
"https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}")
44+
draft=$(echo "$PR_DATA" | jq .draft -r)
45+
echo "is_draft=${draft}" >> $GITHUB_OUTPUT
46+
47+
- name: Check out code
48+
if: steps.skip-workflow.outputs.skip-workflow == 'false'
49+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
50+
with:
51+
persist-credentials: 'false'
52+
53+
- name: Check for changes in relevant files
54+
if: steps.skip-workflow.outputs.skip-workflow == 'false'
55+
uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
56+
id: changes
57+
with:
58+
token: ''
59+
filters: |
60+
end_to_end:
61+
- 'test/config.json'
62+
- 'go/**/*.go'
63+
- 'go/vt/sidecardb/**/*.sql'
64+
- 'go/test/endtoend/onlineddl/vrepl_suite/**'
65+
- 'test.go'
66+
- 'Makefile'
67+
- 'build.env'
68+
- 'go.sum'
69+
- 'go.mod'
70+
- 'proto/*.proto'
71+
- 'tools/**'
72+
- 'config/**'
73+
- 'bootstrap.sh'
74+
- '.github/workflows/cluster_endtoend_vreplication_vdiff2.yml'
75+
76+
- name: Set up Go
77+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
78+
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
79+
with:
80+
go-version-file: go.mod
81+
82+
- name: Set up python
83+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
84+
uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # v5.1.1
85+
86+
- name: Tune the OS
87+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
88+
run: |
89+
# Limit local port range to not use ports that overlap with server side
90+
# ports that we listen on.
91+
sudo sysctl -w net.ipv4.ip_local_port_range="22768 65535"
92+
# Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio
93+
echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf
94+
sudo sysctl -p /etc/sysctl.conf
95+
96+
- name: Get dependencies
97+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
98+
timeout-minutes: 10
99+
run: |
100+
101+
# Get key to latest MySQL repo
102+
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
103+
# Setup MySQL 8.0
104+
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
105+
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
106+
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
107+
sudo apt-get -qq update
108+
109+
# We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
110+
# https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
111+
curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
112+
sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
113+
# libtinfo5 is also needed for older MySQL 5.7 builds.
114+
curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
115+
sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
116+
117+
# Install everything else we need, and configure
118+
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
119+
120+
sudo service mysql stop
121+
sudo service etcd stop
122+
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
123+
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
124+
go mod download
125+
126+
# install JUnit report formatter
127+
go install github.com/vitessio/go-junit-report@HEAD
128+
129+
- name: Setup launchable dependencies
130+
if: steps.skip-workflow.outputs.is_draft == 'false' && steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' && github.base_ref == 'main'
131+
run: |
132+
# Get Launchable CLI installed. If you can, make it a part of the builder image to speed things up
133+
pip3 install --user launchable~=1.0 > /dev/null
134+
135+
# verify that launchable setup is all correct.
136+
launchable verify || true
137+
138+
# Tell Launchable about the build you are producing and testing
139+
launchable record build --name "$GITHUB_RUN_ID" --no-commit-collection --source .
140+
141+
- name: Run cluster endtoend test
142+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
143+
timeout-minutes: 45
144+
run: |
145+
# We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file
146+
# which musn't be more than 107 characters long.
147+
export VTDATAROOT="/tmp/"
148+
source build.env
149+
150+
set -exo pipefail
151+
152+
# Increase our open file descriptor limit as we could hit this
153+
ulimit -n 65536
154+
cat <<-EOF>>./config/mycnf/mysql8026.cnf
155+
innodb_buffer_pool_dump_at_shutdown=OFF
156+
innodb_buffer_pool_in_core_file=OFF
157+
innodb_buffer_pool_load_at_startup=OFF
158+
innodb_buffer_pool_size=64M
159+
innodb_doublewrite=OFF
160+
innodb_flush_log_at_trx_commit=0
161+
innodb_flush_method=O_DIRECT
162+
innodb_numa_interleave=ON
163+
innodb_adaptive_hash_index=OFF
164+
sync_binlog=0
165+
sync_relay_log=0
166+
performance_schema=OFF
167+
slow-query-log=OFF
168+
EOF
169+
170+
cat <<-EOF>>./config/mycnf/mysql8026.cnf
171+
binlog-transaction-compression=ON
172+
EOF
173+
174+
cat <<-EOF>>./config/mycnf/mysql8026.cnf
175+
binlog-row-value-options=PARTIAL_JSON
176+
EOF
177+
178+
# Some of these tests require specific locales to be installed.
179+
# See https://github.com/cncf/automation/commit/49f2ad7a791a62ff7d038002bbb2b1f074eed5d5
180+
# run the tests however you normally do, then produce a JUnit XML file
181+
eatmydata -- go run test.go -docker=false -follow -shard vreplication_vdiff2 | tee -a output.txt | go-junit-report -set-exit-code > report.xml
182+
183+
- name: Print test output and Record test result in launchable if PR is not a draft
184+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' && always()
185+
run: |
186+
if [[ "${{steps.skip-workflow.outputs.is_draft}}" == "false" ]]; then
187+
# send recorded tests to launchable
188+
launchable record tests --build "$GITHUB_RUN_ID" go-test . || true
189+
fi
190+
191+
# print test output
192+
cat output.txt
193+
194+
- name: Test Summary
195+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' && always()
196+
uses: test-summary/action@31493c76ec9e7aa675f1585d3ed6f1da69269a86 # v2.4
197+
with:
198+
paths: "report.xml"
199+
show: "fail"

.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml renamed to .github/workflows/cluster_endtoend_vreplication_vtctldclient_movetables_tz.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows"
22

3-
name: Cluster (vreplication_vtctldclient_vdiff2_movetables_tz)
3+
name: Cluster (vreplication_vtctldclient_movetables_tz)
44
on: [push, pull_request]
55
concurrency:
6-
group: format('{0}-{1}', ${{ github.ref }}, 'Cluster (vreplication_vtctldclient_vdiff2_movetables_tz)')
6+
group: format('{0}-{1}', ${{ github.ref }}, 'Cluster (vreplication_vtctldclient_movetables_tz)')
77
cancel-in-progress: true
88

99
permissions: read-all
@@ -16,8 +16,8 @@ env:
1616
jobs:
1717
build:
1818
timeout-minutes: 60
19-
name: Run endtoend tests on Cluster (vreplication_vtctldclient_vdiff2_movetables_tz)
20-
runs-on: gh-hosted-runners-16cores-1-24.04
19+
name: Run endtoend tests on Cluster (vreplication_vtctldclient_movetables_tz)
20+
runs-on: ubuntu-24.04
2121

2222
steps:
2323
- name: Skip CI
@@ -71,7 +71,7 @@ jobs:
7171
- 'tools/**'
7272
- 'config/**'
7373
- 'bootstrap.sh'
74-
- '.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml'
74+
- '.github/workflows/cluster_endtoend_vreplication_vtctldclient_movetables_tz.yml'
7575
7676
- name: Set up Go
7777
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -178,7 +178,7 @@ jobs:
178178
# Some of these tests require specific locales to be installed.
179179
# See https://github.com/cncf/automation/commit/49f2ad7a791a62ff7d038002bbb2b1f074eed5d5
180180
# run the tests however you normally do, then produce a JUnit XML file
181-
eatmydata -- go run test.go -docker=false -follow -shard vreplication_vtctldclient_vdiff2_movetables_tz | tee -a output.txt | go-junit-report -set-exit-code > report.xml
181+
eatmydata -- go run test.go -docker=false -follow -shard vreplication_vtctldclient_movetables_tz | tee -a output.txt | go-junit-report -set-exit-code > report.xml
182182
183183
- name: Print test output and Record test result in launchable if PR is not a draft
184184
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' && always()

.github/workflows/upgrade_downgrade_test_backups_e2e.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
7575
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
7676
with:
77-
go-version: 1.23.7
77+
go-version: 1.24.4
7878

7979
- name: Set up python
8080
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'

.github/workflows/upgrade_downgrade_test_backups_manual.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
7979
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
8080
with:
81-
go-version: 1.23.7
81+
go-version: 1.24.4
8282

8383
- name: Set up python
8484
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'

.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ jobs:
8686
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
8787
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
8888
with:
89-
go-version: 1.23.7
89+
go-version: 1.24.4
9090

9191
- name: Set up python
9292
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'

.github/workflows/upgrade_downgrade_test_query_serving_queries.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
7979
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
8080
with:
81-
go-version: 1.23.7
81+
go-version: 1.24.4
8282

8383
- name: Set up python
8484
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'

.github/workflows/upgrade_downgrade_test_query_serving_queries_2.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
7979
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
8080
with:
81-
go-version: 1.23.7
81+
go-version: 1.24.4
8282

8383
- name: Set up python
8484
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'

.github/workflows/upgrade_downgrade_test_query_serving_schema.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
7979
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
8080
with:
81-
go-version: 1.23.7
81+
go-version: 1.24.4
8282

8383
- name: Set up python
8484
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'

.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
7979
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
8080
with:
81-
go-version: 1.23.7
81+
go-version: 1.24.4
8282

8383
- name: Set up python
8484
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'

0 commit comments

Comments
 (0)