Skip to content

Commit 34370d0

Browse files
Merge branch 'main' into vtorc-debug-health-fix
Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com>
2 parents c62ebdd + 551a5f7 commit 34370d0

File tree

124 files changed

+3009
-814
lines changed

Some content is hidden

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

124 files changed

+3009
-814
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ go.sum @ajm188 @deepthi @harshit-gangal @mattlord @rohit-nayak-ps @systay @froui
2828
/go/test/endtoend/onlineddl @rohit-nayak-ps @shlomi-noach
2929
/go/test/endtoend/messaging @mattlord @rohit-nayak-ps @derekperkins
3030
/go/test/endtoend/schemadiff @shlomi-noach @mattlord
31+
/go/test/endtoend/transaction @harshit-gangal @systay @frouioui @GuptaManan100
3132
/go/test/endtoend/*throttler* @shlomi-noach @mattlord @timvaillancourt
3233
/go/test/endtoend/vtgate @harshit-gangal @systay @frouioui
3334
/go/test/endtoend/vtorc @deepthi @shlomi-noach @GuptaManan100 @timvaillancourt

.github/workflows/vtop_example.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: vtop_example
2+
on: [push, pull_request]
3+
concurrency:
4+
group: format('{0}-{1}', ${{ github.ref }}, 'vtop_example')
5+
cancel-in-progress: true
6+
7+
jobs:
8+
build:
9+
name: VTop Example
10+
runs-on: self-hosted
11+
12+
steps:
13+
- name: Skip CI
14+
run: |
15+
if [[ "${{contains( github.event.pull_request.labels.*.name, 'Skip CI')}}" == "true" ]]; then
16+
echo "skipping CI due to the 'Skip CI' label"
17+
exit 1
18+
fi
19+
20+
- name: Check if workflow needs to be skipped
21+
id: skip-workflow
22+
run: |
23+
skip='false'
24+
if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then
25+
skip='true'
26+
fi
27+
echo Skip ${skip}
28+
echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT
29+
30+
PR_DATA=$(curl -s\
31+
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
32+
-H "Accept: application/vnd.github.v3+json" \
33+
"https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}")
34+
draft=$(echo "$PR_DATA" | jq .draft -r)
35+
echo "is_draft=${draft}" >> $GITHUB_OUTPUT
36+
37+
- name: Check out code
38+
if: steps.skip-workflow.outputs.skip-workflow == 'false'
39+
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
40+
41+
- name: Check for changes in relevant files
42+
if: steps.skip-workflow.outputs.skip-workflow == 'false'
43+
uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
44+
id: changes
45+
with:
46+
token: ''
47+
filters: |
48+
end_to_end:
49+
- 'go/**/*.go'
50+
- 'go/vt/sidecardb/**/*.sql'
51+
- 'test.go'
52+
- 'Makefile'
53+
- 'build.env'
54+
- 'go.[sumod]'
55+
- 'proto/*.proto'
56+
- 'tools/**'
57+
- 'config/**'
58+
- 'bootstrap.sh'
59+
- 'examples/**'
60+
- 'test/**'
61+
- '.github/workflows/vtop_example.yml'
62+
63+
- name: Set up Go
64+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
65+
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
66+
with:
67+
go-version-file: go.mod
68+
69+
- name: Tune the OS
70+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
71+
run: |
72+
echo '1024 65535' | sudo tee -a /proc/sys/net/ipv4/ip_local_port_range
73+
74+
- name: Get dependencies
75+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
76+
run: |
77+
# Install everything we need, and configure
78+
sudo apt-get install -y eatmydata make
79+
go mod download
80+
81+
# needed for vtctldclient
82+
- name: Build vitess
83+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
84+
run: |
85+
make build
86+
87+
- name: Install kubectl & kind
88+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
89+
run: |
90+
make install_kubectl_kind
91+
92+
- name: vtop_example
93+
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
94+
timeout-minutes: 60
95+
run: |
96+
source build.env
97+
eatmydata -- go run test.go -docker=false -skip-build -print-log -follow -retry=1 -timeout=60m vtop_example

changelog/19.0/19.0.8/changelog.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Changelog of Vitess v19.0.8
2+
3+
### Bug fixes
4+
#### Topology
5+
* [release-19.0] Close zookeeper topo connection on disconnect (#17136) [#17191](https://github.com/vitessio/vitess/pull/17191)
6+
#### VTTablet
7+
* [release-19.0] Fix deadlock in messager and health streamer (#17230) [#17233](https://github.com/vitessio/vitess/pull/17233)
8+
* [release-19.0] Fix potential deadlock in health streamer (#17261) [#17268](https://github.com/vitessio/vitess/pull/17268)
9+
### CI/Build
10+
#### Build/CI
11+
* [release-19.0] Specify Ubuntu 24.04 for all jobs (#17278) [#17280](https://github.com/vitessio/vitess/pull/17280)
12+
#### Cluster management
13+
* [release-19.0] Fix flakiness in `TestListenerShutdown` (#17024) [#17187](https://github.com/vitessio/vitess/pull/17187)
14+
#### General
15+
* [release-19.0] Upgrade the Golang version to `go1.22.9` [#17214](https://github.com/vitessio/vitess/pull/17214)
16+
### Enhancement
17+
#### Query Serving
18+
* [release-19.0] Fix to prevent stopping buffering prematurely (#17013) [#17203](https://github.com/vitessio/vitess/pull/17203)
19+
### Internal Cleanup
20+
#### Build/CI
21+
* [release-19.0] Change the name of the vitess-tester repository (#16917) [#17028](https://github.com/vitessio/vitess/pull/17028)
22+
### Release
23+
#### General
24+
* [release-19.0] Bump to `v19.0.8-SNAPSHOT` after the `v19.0.7` release [#17158](https://github.com/vitessio/vitess/pull/17158)
25+
* [release-19.0] Code Freeze for `v19.0.8` [#17310](https://github.com/vitessio/vitess/pull/17310)
26+
### Testing
27+
#### Build/CI
28+
* [release-19.0] Flakes: Address flakiness in TestZkConnClosedOnDisconnect (#17194) [#17195](https://github.com/vitessio/vitess/pull/17195)
29+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Release of Vitess v19.0.8
2+
The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/19.0/19.0.8/changelog.md).
3+
4+
The release includes 11 merged Pull Requests.
5+
6+
Thanks to all our contributors: @app/vitess-bot, @frouioui, @vitess-bot
7+

changelog/19.0/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
## v19.0
2+
* **[19.0.8](19.0.8)**
3+
* [Changelog](19.0.8/changelog.md)
4+
* [Release Notes](19.0.8/release_notes.md)
5+
26
* **[19.0.7](19.0.7)**
37
* [Changelog](19.0.7/changelog.md)
48
* [Release Notes](19.0.7/release_notes.md)

changelog/20.0/20.0.4/changelog.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Changelog of Vitess v20.0.4
2+
3+
### Bug fixes
4+
#### Query Serving
5+
* [release-20.0] Use proper keyspace when updating the query graph of a reference DML (#17226) [#17257](https://github.com/vitessio/vitess/pull/17257)
6+
#### Topology
7+
* [release-20.0] Close zookeeper topo connection on disconnect (#17136) [#17192](https://github.com/vitessio/vitess/pull/17192)
8+
#### VTTablet
9+
* [release-20.0] Fix deadlock in messager and health streamer (#17230) [#17234](https://github.com/vitessio/vitess/pull/17234)
10+
* [release-20.0] Fix potential deadlock in health streamer (#17261) [#17269](https://github.com/vitessio/vitess/pull/17269)
11+
### CI/Build
12+
#### Build/CI
13+
* [release-20.0] Specify Ubuntu 24.04 for all jobs (#17278) [#17281](https://github.com/vitessio/vitess/pull/17281)
14+
#### Cluster management
15+
* [release-20.0] Fix flakiness in `TestListenerShutdown` (#17024) [#17188](https://github.com/vitessio/vitess/pull/17188)
16+
#### General
17+
* [release-20.0] Upgrade the Golang version to `go1.22.9` [#17212](https://github.com/vitessio/vitess/pull/17212)
18+
### Enhancement
19+
#### Query Serving
20+
* [release-20.0] Fix to prevent stopping buffering prematurely (#17013) [#17204](https://github.com/vitessio/vitess/pull/17204)
21+
### Internal Cleanup
22+
#### Build/CI
23+
* [release-20.0] Change the name of the vitess-tester repository (#16917) [#17029](https://github.com/vitessio/vitess/pull/17029)
24+
### Testing
25+
#### Build/CI
26+
* [release-20.0] Flakes: Address flakiness in TestZkConnClosedOnDisconnect (#17194) [#17196](https://github.com/vitessio/vitess/pull/17196)
27+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Release of Vitess v20.0.4
2+
The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/20.0/20.0.4/changelog.md).
3+
4+
The release includes 10 merged Pull Requests.
5+
6+
Thanks to all our contributors: @app/vitess-bot, @frouioui
7+

changelog/20.0/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
## v20.0
2+
* **[20.0.4](20.0.4)**
3+
* [Changelog](20.0.4/changelog.md)
4+
* [Release Notes](20.0.4/release_notes.md)
5+
26
* **[20.0.3](20.0.3)**
37
* [Changelog](20.0.3/changelog.md)
48
* [Release Notes](20.0.3/release_notes.md)

changelog/21.0/21.0.0/summary.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
- [Deprecated VTTablet Flags](#vttablet-flags)
1010
- [Deletion of deprecated metrics](#metric-deletion)
1111
- [Deprecated Metrics](#deprecations-metrics)
12+
- **[RPC Changes](#rpc-changes)**
1213
- **[Traffic Mirroring](#traffic-mirroring)**
1314
- **[Atomic Distributed Transaction Support](#atomic-transaction)**
1415
- **[New VTGate Shutdown Behavior](#new-vtgate-shutdown-behavior)**
@@ -77,6 +78,12 @@ The following metrics are now deprecated and will be deleted in a future release
7778
| `vttablet` | `QueryCacheHits` | `QueryEnginePlanCacheHits` |
7879
| `vttablet` | `QueryCacheMisses` | `QueryEnginePlanCacheMisses` |
7980

81+
### <a id="rpc-changes"/>RPC Changes</a>
82+
83+
These are the RPC changes made in this release -
84+
1. `ReadReparentJournalInfo` RPC has been added in TabletManagerClient interface, that is going to be used in EmergencyReparentShard for better errant GTID detection.
85+
2. `PrimaryStatus` RPC in TabletManagerClient interface has been updated to also return the server UUID of the primary. This is going to be used in the vttablets so that they can do their own errant GTID detection in `SetReplicationSource`.
86+
8087
### <a id="traffic-mirroring"/>Traffic Mirroring</a>
8188

8289
Traffic mirroring is intended to help reduce some of the uncertainty inherent to `MoveTables SwitchTraffic`. When

changelog/21.0/21.0.1/changelog.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Changelog of Vitess v21.0.1
2+
3+
### Bug fixes
4+
#### Backup and Restore
5+
* [release-21.0] Fix how we cancel the context in the builtin backup engine (#17285) [#17291](https://github.com/vitessio/vitess/pull/17291)
6+
* [release-21.0] S3: optional endpoint resolver and correct retrier [#17307](https://github.com/vitessio/vitess/pull/17307)
7+
#### Cluster management
8+
* [release-21.0] Fix panic in vttablet when closing topo server twice (#17094) [#17122](https://github.com/vitessio/vitess/pull/17122)
9+
#### Online DDL
10+
* [release-21.0] Online DDL: fix defer function, potential connection pool exhaustion (#17207) [#17210](https://github.com/vitessio/vitess/pull/17210)
11+
#### Query Serving
12+
* [release-21.0] bugfix: treat EXPLAIN like SELECT (#17054) [#17058](https://github.com/vitessio/vitess/pull/17058)
13+
* [release-21.0] Delegate Column Availability Checks to MySQL for Single-Route Queries (#17077) [#17087](https://github.com/vitessio/vitess/pull/17087)
14+
* [release-21.0] bugfix: Handle CTEs with columns named in the CTE def (#17179) [#17181](https://github.com/vitessio/vitess/pull/17181)
15+
* [release-21.0] Use proper keyspace when updating the query graph of a reference DML (#17226) [#17258](https://github.com/vitessio/vitess/pull/17258)
16+
#### Topology
17+
* [release-21.0] Close zookeeper topo connection on disconnect (#17136) [#17193](https://github.com/vitessio/vitess/pull/17193)
18+
#### VReplication
19+
* [release-21.0] VReplication: Qualify and SQL escape tables in created AutoIncrement VSchema definitions (#17174) [#17176](https://github.com/vitessio/vitess/pull/17176)
20+
#### VTTablet
21+
* [release-21.0] Fix deadlock in messager and health streamer (#17230) [#17235](https://github.com/vitessio/vitess/pull/17235)
22+
* [release-21.0] Fix potential deadlock in health streamer (#17261) [#17270](https://github.com/vitessio/vitess/pull/17270)
23+
### CI/Build
24+
#### Build/CI
25+
* [release-21.0] Specify Ubuntu 24.04 for all jobs (#17278) [#17282](https://github.com/vitessio/vitess/pull/17282)
26+
#### Cluster management
27+
* [release-21.0] Fix flakiness in `TestListenerShutdown` (#17024) [#17189](https://github.com/vitessio/vitess/pull/17189)
28+
#### General
29+
* [release-21.0] Upgrade the Golang version to `go1.23.3` [#17211](https://github.com/vitessio/vitess/pull/17211)
30+
### Dependencies
31+
#### Java
32+
* [release-21.0] java package updates for grpc and protobuf and release plugins (#17100) [#17105](https://github.com/vitessio/vitess/pull/17105)
33+
### Documentation
34+
#### Documentation
35+
* [Direct PR][release-21.0] Add RPC changes segment in the summary doc [#17034](https://github.com/vitessio/vitess/pull/17034)
36+
### Enhancement
37+
#### Online DDL
38+
* [release-21.0] Improve Schema Engine's TablesWithSize80 query (#17066) [#17091](https://github.com/vitessio/vitess/pull/17091)
39+
#### Query Serving
40+
* [release-21.0] Fix to prevent stopping buffering prematurely (#17013) [#17205](https://github.com/vitessio/vitess/pull/17205)
41+
#### VReplication
42+
* [release-21.0] Binlog: Improve ZstdInMemoryDecompressorMaxSize management (#17220) [#17241](https://github.com/vitessio/vitess/pull/17241)
43+
### Internal Cleanup
44+
#### Build/CI
45+
* [release-21.0] Change the name of the vitess-tester repository (#16917) [#17030](https://github.com/vitessio/vitess/pull/17030)
46+
### Regression
47+
#### Backup and Restore
48+
* [release-21.0] Fix unreachable errors when taking a backup (#17062) [#17112](https://github.com/vitessio/vitess/pull/17112)
49+
### Release
50+
#### General
51+
* [release-21.0] Bump to `v21.0.1-SNAPSHOT` after the `v21.0.0` release [#17098](https://github.com/vitessio/vitess/pull/17098)
52+
### Testing
53+
#### Build/CI
54+
* [release-21.0] Flakes: Address flakiness in TestZkConnClosedOnDisconnect (#17194) [#17197](https://github.com/vitessio/vitess/pull/17197)
55+
#### Query Serving
56+
* [release-21.0] fix: flaky test on twopc transaction (#17068) [#17070](https://github.com/vitessio/vitess/pull/17070)
57+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Release of Vitess v21.0.1
2+
The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/21.0/21.0.1/changelog.md).
3+
4+
The release includes 25 merged Pull Requests.
5+
6+
Thanks to all our contributors: @GuptaManan100, @app/vitess-bot, @frouioui, @vitess-bot
7+

changelog/21.0/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
## v21.0
2+
* **[21.0.1](21.0.1)**
3+
* [Changelog](21.0.1/changelog.md)
4+
* [Release Notes](21.0.1/release_notes.md)
5+
26
* **[21.0.0](21.0.0)**
37
* [Changelog](21.0.0/changelog.md)
48
* [Release Notes](21.0.0/release_notes.md)

changelog/22.0/22.0.0/summary.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- **[Major Changes](#major-changes)**
66
- **[RPC Changes](#rpc-changes)**
77
- **[Prefer not promoting a replica that is currently taking a backup](#reparents-prefer-not-backing-up)**
8+
- **[VTOrc Config File Changes](#vtorc-config-file-changes)**
89

910

1011
## <a id="major-changes"/>Major Changes</a>
@@ -25,4 +26,25 @@ For planned reparents, hosts taking backups with a backup engine other than `bui
2526
valid candidates. This means they will never get promoted - not even if there's no other candidates.
2627

2728
Note that behavior for `builtin` backups remains unchanged: a replica that is currently taking a `builtin` backup will
28-
never be promoted, neither by planned nor by emergency reparents.
29+
never be promoted, neither by planned nor by emergency reparents.
30+
31+
### <a id="vtorc-config-file-changes"/>VTOrc Config File Changes</a>
32+
33+
The configuration file for VTOrc has been updated to now support dynamic fields. The old `--config` parameter has been removed. The alternative is to use the `--config-file` parameter. The configuration can now be provided in json, yaml or any other format that [viper](https://github.com/spf13/viper) supports.
34+
35+
The following fields can be dynamically changed -
36+
1. `instance-poll-time`
37+
2. `prevent-cross-cell-failover`
38+
3. `snapshot-topology-interval`
39+
4. `reasonable-replication-lag`
40+
5. `audit-to-backend`
41+
6. `audit-to-syslog`
42+
7. `audit-purge-duration`
43+
8. `wait-replicas-timeout`
44+
9. `tolerable-replication-lag`
45+
10. `topo-information-refresh-duration`
46+
11. `recovery-poll-duration`
47+
12. `allow-emergency-reparent`
48+
13. `change-tablets-with-errant-gtid-to-drained`
49+
50+
To upgrade to the newer version of the configuration file, first switch to using the flags in your current deployment before upgrading. Then you can switch to using the configuration file in the newer release.

examples/common/scripts/vtctld-up.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ vtctld \
3333
--port $vtctld_web_port \
3434
--grpc_port $grpc_port \
3535
--pid_file $VTDATAROOT/tmp/vtctld.pid \
36+
--pprof-http \
3637
> $VTDATAROOT/tmp/vtctld.out 2>&1 &
3738

3839
for _ in {0..300}; do

examples/common/scripts/vtgate-up.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ vtgate \
4141
--pid_file $VTDATAROOT/tmp/vtgate.pid \
4242
--enable_buffer \
4343
--mysql_auth_server_impl none \
44+
--pprof-http \
4445
> $VTDATAROOT/tmp/vtgate.out 2>&1 &
4546

4647
# Block waiting for vtgate to be listening

examples/common/scripts/vtorc-up.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ vtorc \
1111
$TOPOLOGY_FLAGS \
1212
--logtostderr \
1313
--alsologtostderr \
14-
--config="${script_dir}/../vtorc/config.json" \
14+
--config-path="${script_dir}/../vtorc/" \
15+
--config-name="config.yaml" \
16+
--config-type="yml" \
1517
--port $port \
1618
> "${log_dir}/vtorc.out" 2>&1 &
1719

examples/common/scripts/vttablet-up.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ vttablet \
5454
--service_map 'grpc-queryservice,grpc-tabletmanager,grpc-updatestream' \
5555
--pid_file $VTDATAROOT/$tablet_dir/vttablet.pid \
5656
--heartbeat_on_demand_duration=5s \
57+
--pprof-http \
5758
> $VTDATAROOT/$tablet_dir/vttablet.out 2>&1 &
5859

5960
# Block waiting for the tablet to be listening

examples/common/vtorc/config.json

Lines changed: 0 additions & 4 deletions
This file was deleted.

examples/common/vtorc/config.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
instance-poll-time: 1s
2+
prevent-cross-cell-failover: false
3+
snapshot-topology-interval: 0h
4+
reasonable-replication-lag: 10s
5+
audit-to-backend: false
6+
audit-to-syslog: false
7+
audit-purge-duration: 168h
8+
wait-replicas-timeout: 30s
9+
tolerable-replication-lag: 0s
10+
topo-information-refresh-duration: 15s
11+
recovery-poll-duration: 1s
12+
allow-emergency-reparent: true
13+
change-tablets-with-errant-gtid-to-drained: false

0 commit comments

Comments
 (0)