Skip to content

[release-21.0] CI: deflakes, fork runner fallback, MySQL install, codecov gating#20196

Open
arthurschreiber wants to merge 13 commits into
vitessio:release-21.0from
arthurschreiber:release-21.0-ci-fixes
Open

[release-21.0] CI: deflakes, fork runner fallback, MySQL install, codecov gating#20196
arthurschreiber wants to merge 13 commits into
vitessio:release-21.0from
arthurschreiber:release-21.0-ci-fixes

Conversation

@arthurschreiber
Copy link
Copy Markdown
Member

Description

release-21.0 is long EOL and not supported. However, some users still run it internally, or have to run it for a short window as part of an upgrade path to a supported Vitess version. Those users sometimes need to backport fixes from newer branches into their own forks, and right now that's painful: CI on the release-21.0 branch is broken in several ways for any repo that isn't vitessio/vitess (custom runners that forks can't schedule on, a stale ubuntu-24.04 image MySQL install conflict, a Percona repo that no longer ships the package we install, a Code Coverage job that goes red without an upload token, a handful of flaky tests, plus several uses: references that don't satisfy the org's SHA-pin policy).

This PR bundles the CI-only fixes needed to get release-21.0 green again so those backports can land. No production code is changed — everything is .github/, test helpers, or test code.

To be clear: merging this is not a change in support status. release-21.0 remains EOL. This is a courtesy to make life easier for users still on the branch by accident or by upgrade-path necessity.

The same set of fixes was opened against release-20.0 in #20195.

Fork-runner / infra fallbacks

  • 384182b ci: fall back to ubuntu-24.04 outside vitessio/vitess — forks can't schedule on gh-hosted-runners-16cores-1-24.04; gate on github.repository.
  • 67660e7 ci: gate remaining query_serving_queries_2 runners on github.repository — follow-up: two query_serving_queries_2 workflows still hardcoded the custom runner.
  • 196e56e ci: fix MySQL install on ubuntu-24.04 runners — uninstall the ubuntu-24.04 image's pre-installed MySQL before installing ours, recreate the apparmor profile, and pull libaio1 / libtinfo5 from archive.ubuntu.com (mirrors what release-23.0/24.0's setup-mysql composite action does).
  • 044a3bb ci: enable pxb-80 repo for percona-xtrabackup-80 installpercona-release setup ps80 no longer ships percona-xtrabackup-80; set up the pdps8.0 + pxb-80 repos like release-23.0/24.0 do.

Code Coverage gating

  • dea0555 ci: skip Code Coverage job when CODECOV_TOKEN isn't available.
  • 2ce797b ci: gate Code Coverage on github.repository instead of token presence — follow-up so tokenless/OIDC uploads on vitessio/vitess aren't accidentally disabled.

Test deflakes (backports / cherry-picks)

  • e16ff38 Flakes: Address TestServerStats flakiness (#16991) — cherry-pick.
  • 8136179 go/mysql: relax TestTLSRequired revoked-cert assertion — accept connection reset by peer / broken pipe alongside bad certificate; all three mean the revoked cert was rejected.
  • eac7167 go/mysql: deflake TestStaticConfigHUP — backport of the auth_server_static_test.go slice of CI: Deflake Code Coverage workflow #19388 (poll with EventuallyWithT instead of a fixed sleep).
  • a814579 go/mysql: stop TestStaticConfigHUP panicking inside EventuallyWithT — follow-up: this branch is pinned to testify v1.9, where CollectT.FailNow panics and EventuallyWithT doesn't recover. Use assert.X(c, ...) instead of require.X(c, ...).
  • 8d3e545 go/vt/vtgate/schema: bump TestTrackerNoLock channel-send timeout — backport of the tracker_test.go slice of flaky test fix TestTrackerNoLock and TestCreateLookupVindexMultipleCreate #18317 (10ms → 50ms).
  • b3c8e9a CI: Look for expected log message rather than code in Backup tests (#19199) — cherry-pick.

Action SHA pinning

  • 0b8b374 ci: pin all GitHub Actions to full-length commit SHAs — the vitessio/vitess action policy requires every uses: to reference a full 40-char commit SHA. Pin the eight remaining @v* / @master references (codecov-action, setup-node, checkout, peter-evans, codeql-action, fossa-action, slack-workflow-status) at the same major versions they were on, using the SHAs upstream uses on newer branches.

Related Issue(s)

None — these are CI-only stabilization fixes.

Checklist

  • "Backport to:" labels have been added if this change should be back-ported to release branches
  • If this change is to be back-ported to previous releases, a justification is included in the PR description
  • Tests were added or are not required
  • Did the new or modified tests pass consistently locally and on CI?
  • Documentation was added or is not required

Deployment Notes

None — CI-only changes.

arthurschreiber and others added 13 commits May 26, 2026 09:12
Forks don't have access to the `gh-hosted-runners-16cores-1-24.04`
runner pool, so workflows that hardcoded it would never schedule.
Gate the runner selection on `github.repository` so forks fall back
to `ubuntu-24.04` automatically.

The three e2e templates are updated and regenerated; the
hand-maintained workflows (codecov, unit_race*, upgrade_downgrade_*,
local/region examples) get the same expression inline.
`docker_build_images.yml` is left as-is because both of its jobs
already gate on `if: github.repository == 'vitessio/vitess'`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
Signed-off-by: Matt Lord <mattalord@gmail.com>
(cherry picked from commit 9290e31)
When the server's `VerifyPeerCertificate` returns "Certificate revoked",
Go's TLS sends a `bad_certificate` alert and then closes. Whether the
client reads the alert or the TCP RST first depends on kernel TCP
flush timing — so the test would sometimes see
`remote error: tls: bad certificate` and sometimes
`connection reset by peer` / `broken pipe`.

Both outcomes mean the revoked certificate was rejected, which is what
the test cares about. Accept any of the three error strings.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
…itessio#19199)

Signed-off-by: Matt Lord <mattalord@gmail.com>
(cherry picked from commit 3839bd4)
After SIGHUPing the static auth server to force a config reload, the
test slept a fixed 100ms (or 20ms) and then asserted the new entries
were live. On a slow CI runner the signal handler hasn't finished
processing yet, and the test fails with:

  Expected nil, but got: []*mysql.AuthServerStaticEntry{...}

Match the fix from PR vitessio#19388: replace the fixed sleep with
require.EventuallyWithT polling, with a generous 30s deadline so
slower runners still pass.

Backport of the go/mysql/auth_server_static_test.go slice of vitessio#19388
(the rest of that PR is unrelated zkctl/zk2topo/tabletserver work
that doesn't apply to this branch).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
TestTrackerNoLock pushes 500,000 messages onto a channel and asserts
each send completes within 10ms. Under CI load that's tight enough to
flake regularly, surfacing as:

  tracker_test.go:199: failed to send health check to tracker

Match the fix from PR vitessio#18317: bump the per-send timeout to 50ms.

Backport of the go/vt/vtgate/schema/tracker_test.go slice of vitessio#18317
(the materializer_test.go slice is for an unrelated test).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
The `percona-release setup ps80` shortcut no longer enables a repo
that ships `percona-xtrabackup-80`, so the xb_backup / xb_recovery /
backup_pitr_xtrabackup jobs were failing with:

  E: Unable to locate package percona-xtrabackup-80

Match what release-23.0 and release-24.0 do: set up the
pdps8.0 distribution repo and pxb-80 (XtraBackup 8.0) repo, and
re-enable the ps-80 release repo for percona-server packages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
Backport the relevant pieces of the newer branches'
.github/actions/setup-mysql composite action into the existing
release-21.0 templates so the ubuntu-24.04 runner image's
pre-installed MySQL doesn't break our install:

  - Uninstall the MySQL pre-installed on the ubuntu-24.04 runner
    image before installing our own, so the package install
    doesn't conflict.
  - Recreate an empty apparmor profile before disabling /
    reloading it (the profile is removed along with the
    pre-installed MySQL packages).
  - Pull libaio1 / libtinfo5 from archive.ubuntu.com instead of
    mirrors.kernel.org, matching the newer composite action.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
The previous deflake commit (e3cd779) ported the EventuallyWithT
callback verbatim from upstream's PR vitessio#19388, which uses `require.X(c,
...)`. That works on upstream's testify v1.11+, but this branch is
pinned to testify v1.9, where `CollectT.FailNow` is implemented as
`panic("Assertion failed")` and `EventuallyWithT` doesn't recover from
it — so the first failed poll crashes the goroutine. The job log
showed exactly that:

  panic: Assertion failed
  testify/assert.(*CollectT).FailNow ...
  EventuallyWithT.func1 ...
  FAIL  vitess.io/vitess/go/mysql

Replace `require.X(c, ...)` with `assert.X(c, ...)` (which just flags
the CollectT instead of panicking) and guard the `entries[0]` indexing
on `assert.NotEmpty`, otherwise a `nil[0]` slice access escapes the
same way.

Hoisted the polling loop into a `waitForReload` helper since both
hupTest and hupTestWithRotation now use the same body.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
(cherry picked from commit 248182c)
The Upload step in codecov.yml has `fail_ci_if_error: true`, so when
the workflow runs on a fork (or anywhere else without
`secrets.CODECOV_TOKEN`) the upload returns:

  Token required - not valid tokenless upload
  ==> Failed to create-commit

…and the whole job goes red even though the test suite passed.

Gate the entire job on `secrets.CODECOV_TOKEN != ''` so forks skip
both the test run and the upload — running unit tests just to throw
away the coverage report is wasted CI time. Anyone who actually wants
the coverage can opt in by configuring the secret on their fork.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
The previous commit (51bb5c8) gated the Code Coverage job on
`secrets.CODECOV_TOKEN != ''`. That breaks if upstream relies on
tokenless / OIDC upload — they wouldn't have the secret set, and the
job would skip on `vitessio/vitess` too.

Switch to the same pattern we already use for runner selection:
`if: github.repository == 'vitessio/vitess'`. Coverage runs on upstream
unconditionally, and forks skip without burning ~16 minutes of unit
tests.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
(cherry picked from commit bb3b340)
The two query_serving_queries_2 workflows still hardcoded
`gh-hosted-runners-16cores-1-24.04`, which forks can't schedule on.
Apply the same `github.repository`-gated expression used elsewhere so
they fall back to `ubuntu-24.04` outside vitessio/vitess.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
The vitessio/vitess action policy requires every `uses:` to reference a
full 40-char commit SHA, but a handful of workflows on release-21.0
still pin by major tag (or by `@master`). Any PR that touches CI on
this branch fails at the `Prepare all required actions` step with:

  The action <name>@<ref> is not allowed in vitessio/vitess because
  all actions must be pinned to a full-length commit SHA.

Pin the remaining references, keeping the major version unchanged:

  actions/checkout@v4                  → 11bd7190 # v4.2.2
  actions/setup-node@v4                → 1e60f620 # v4.0.3
  codecov/codecov-action@v4            → b9fd7d16 # v4.6.0
  fossa-contrib/fossa-action@v3        → 3d2ef181 # v3.0.1
  Gamesight/slack-workflow-status@master → 68bf00d0 # v1.3.0
  github/codeql-action/init@v3         → 4bdb89f4 # v3.28.18
  github/codeql-action/analyze@v3      → 4bdb89f4 # v3.28.18
  peter-evans/create-pull-request@v7   → 22a90890 # v7.0.11

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
Copilot AI review requested due to automatic review settings May 27, 2026 09:02
@vitess-bot vitess-bot Bot added NeedsWebsiteDocsUpdate What it says NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsIssue A linked issue is missing for this Pull Request NeedsBackportReason If backport labels have been applied to a PR, a justification is required labels May 27, 2026
@github-actions github-actions Bot added this to the v21.0.7 milestone May 27, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR restores green CI on the EOL release-21.0 branch (especially for forks) by adding runner fallbacks, fixing MySQL/Percona install steps on Ubuntu 24.04 images, deflaking a handful of tests, gating Codecov appropriately, and SHA-pinning remaining GitHub Actions uses.

Changes:

  • Add fork-safe runner selection (fallback to ubuntu-24.04 when custom runners aren’t available) and gate Codecov to vitessio/vitess.
  • Fix CI MySQL/Percona install conflicts on Ubuntu 24.04 (uninstall preinstalled MySQL, recreate/disable AppArmor profile, update Percona repo setup).
  • Deflake several tests and SHA-pin remaining Actions references.

Reviewed changes

Copilot reviewed 99 out of 99 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
test/templates/unit_test.tpl Switches MySQL 5.7 dependency install steps (incl. archive package fetches).
test/templates/cluster_vitess_tester.tpl Adds Ubuntu 24.04 MySQL uninstall/AppArmor handling before installing required MySQL.
test/templates/cluster_endtoend_test.tpl Adds fork runner fallback + Ubuntu 24.04 MySQL uninstall + Percona repo setup adjustments.
test/templates/cluster_endtoend_test_mysql57.tpl Updates MySQL 5.7 end-to-end dependency install steps for Ubuntu 24.04 runner images.
test/templates/cluster_endtoend_test_docker.tpl Adds fork runner fallback for 16-core runner selection.
go/vt/vtgate/schema/tracker_test.go Deflakes TestTrackerNoLock by increasing channel send timeout.
go/test/endtoend/backup/vtbackup/backup_only_test.go Makes redo-log verification resilient to MySQL error-code changes by matching log message.
go/mysql/server_test.go Deflakes server stats test via Eventually; relaxes revoked-cert assertion to tolerate transport-level errors.
go/mysql/auth_server_static_test.go Deflakes HUP reload tests by polling via EventuallyWithT and avoiding require panics in callbacks.
.github/workflows/vtadmin_web_unit_tests.yml SHA-pins actions/setup-node usage.
.github/workflows/vtadmin_web_lint.yml SHA-pins actions/setup-node usage.
.github/workflows/vtadmin_web_build.yml SHA-pins actions/setup-node usage.
.github/workflows/vitess_tester_vtgate.yml Adds Ubuntu 24.04 MySQL uninstall/AppArmor handling before installing required MySQL.
.github/workflows/upgrade_downgrade_test_semi_sync.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_query_serving_schema.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_query_serving_queries.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_query_serving_queries_2.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_query_serving_queries_2_next_release.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_backups_manual.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_backups_e2e.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/update_golang_version.yml SHA-pins peter-evans/create-pull-request.
.github/workflows/update_golang_dependencies.yml SHA-pins peter-evans/create-pull-request.
.github/workflows/unit_test_mysql57.yml Updates MySQL 5.7 workflow dependency install steps (incl. archive package fetches).
.github/workflows/unit_test_evalengine_mysql57.yml Updates MySQL 5.7 evalengine workflow dependency install steps (incl. archive package fetches).
.github/workflows/unit_race.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/unit_race_evalengine.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/static_checks_etc.yml SHA-pins FOSSA action and other uses: entries in static checks workflow.
.github/workflows/scorecards.yml SHA-pins actions/checkout.
.github/workflows/region_example.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/local_example.yml Adds fork-safe runner fallback for custom runner.
.github/workflows/codeql_analysis.yml SHA-pins CodeQL actions and Slack workflow action.
.github/workflows/codecov.yml Gates coverage to vitessio/vitess and SHA-pins Codecov action.
.github/workflows/cluster_endtoend_xb_recovery.yml Fixes Percona setup + Ubuntu 24.04 MySQL uninstall/AppArmor handling.
.github/workflows/cluster_endtoend_xb_backup.yml Fixes Percona setup + Ubuntu 24.04 MySQL uninstall/AppArmor handling.
.github/workflows/cluster_endtoend_vttablet_prscomplex.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtorc.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_vschema.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_unsharded.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_transaction.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_topo.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_topo_consul.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_schema.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_reservedconn.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_queries.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_godriver.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_general_heavy.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_gen4.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vtbackup.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vstream.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vreplication_v2.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling.
.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vreplication_cellalias.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_vreplication_basic.yml Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling.
.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_topo_connection_cache.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_tabletmanager_consul.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_schemadiff_vrepl.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_onlineddl_vrepl.yml Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling.
.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling.
.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling.
.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling.
.github/workflows/cluster_endtoend_onlineddl_scheduler.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_onlineddl_revert.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_mysql80.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_mysql_server_vault.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_backup_pitr.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml Fixes Percona setup + Ubuntu 24.04 MySQL uninstall/AppArmor handling.
.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_21.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_18.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_15.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_13.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
.github/workflows/cluster_endtoend_12.yml Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches.
Comments suppressed due to low confidence (1)

.github/workflows/static_checks_etc.yml:37

  • This workflow passes a FOSSA API key directly in the workflow file. Even if it's described as "push-only", it's still a credential and should be stored as a GitHub Actions secret (or use the GitHub-provided token/OIDC flow if supported) to avoid credential leakage via forks, logs, or history.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 109 to 115
# We have to install this old version of libaio1. See also:
# https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
# libtinfo5 is also needed for older MySQL 5.7 builds.
curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is suboptimal, but this is true for all release branches at this point. I'll open a pull request to track this and have this fixed.

Comment on lines +137 to +143
# We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
# https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
# libtinfo5 is also needed for older MySQL 5.7 builds.
wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
Comment on lines +120 to +126
# We have to install this old version of libaio1. See also:
# https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
# libtinfo5 is also needed for MySQL 5.7 builds.
wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
Comment on lines 109 to 116
# We have to install this old version of libaio1. See also:
# https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
# libtinfo5 is also needed for older MySQL 5.7 builds.
curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
Comment on lines 109 to 116
# We have to install this old version of libaio1. See also:
# https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
# libtinfo5 is also needed for older MySQL 5.7 builds.
curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
@arthurschreiber arthurschreiber removed NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsWebsiteDocsUpdate What it says NeedsIssue A linked issue is missing for this Pull Request NeedsBackportReason If backport labels have been applied to a PR, a justification is required Component: VTGate labels May 27, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.86%. Comparing base (f7575b5) to head (0b8b374).

Additional details and impacted files
@@              Coverage Diff              @@
##           release-21.0   #20196   +/-   ##
=============================================
  Coverage         69.85%   69.86%           
=============================================
  Files              1573     1573           
  Lines            204911   204911           
=============================================
+ Hits             143147   143156    +9     
+ Misses            61764    61755    -9     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@arthurschreiber arthurschreiber enabled auto-merge (squash) May 27, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants