From 215a82986daa13dac522591a6ed9bd836f6d269a Mon Sep 17 00:00:00 2001 From: ZhuchkaTriplesix Date: Fri, 9 Oct 2026 11:45:13 +0300 Subject: [PATCH 1/2] ci: run a MySQL server for the live database test in core-data The live MySQL COM_QUERY test skipped in CI because no server listened on 127.0.0.1:3306, so the drain behaviour against a real server was never checked. The core-data job now starts a MySQL 8 container with the querya user and database the test reads from its defaults, and waits until it answers. --- .github/workflows/ci.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 43167095..c518e0c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,6 +55,28 @@ jobs: # up uid map: Permission denied"). This relaxes it on the CI VM only. sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 + # The live MySQL test in core-data reads 127.0.0.1:3306 with the querya + # user from the environment defaults; without a server it skips. + - name: Start MySQL for the live database test + if: matrix.section == 'core-data' && runner.environment == 'github-hosted' + timeout-minutes: 5 + run: | + docker run -d --name mysql-live -p 3306:3306 \ + -e MYSQL_ROOT_PASSWORD=root \ + -e MYSQL_DATABASE=querya \ + -e MYSQL_USER=querya \ + -e MYSQL_PASSWORD=querya \ + mysql:8.0 + for _ in $(seq 1 60); do + if docker exec mysql-live mysqladmin -uquerya -pquerya --silent ping 2>/dev/null; then + echo "MySQL is up" + exit 0 + fi + sleep 2 + done + docker logs mysql-live + exit 1 + - name: Get dependencies run: flutter pub get From a74fad2719b4305c5332cf0fcbbe89de879e2511 Mon Sep 17 00:00:00 2001 From: ZhuchkaTriplesix Date: Fri, 9 Oct 2026 11:48:08 +0300 Subject: [PATCH 2/2] ci: MySQL container uses mysql_native_password for the live test The live test failed: MySQL 8's default auth plugin, caching_sha2_password, needs a secure connection, and the client connects without TLS here. The test server now uses mysql_native_password. --- .github/workflows/ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c518e0c3..2831e637 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,9 @@ jobs: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 # The live MySQL test in core-data reads 127.0.0.1:3306 with the querya - # user from the environment defaults; without a server it skips. + # user from the environment defaults; without a server it skips. The + # client has no TLS here, so the server uses mysql_native_password: MySQL + # 8's default caching_sha2_password needs a secure connection. - name: Start MySQL for the live database test if: matrix.section == 'core-data' && runner.environment == 'github-hosted' timeout-minutes: 5 @@ -66,7 +68,7 @@ jobs: -e MYSQL_DATABASE=querya \ -e MYSQL_USER=querya \ -e MYSQL_PASSWORD=querya \ - mysql:8.0 + mysql:8.0 --default-authentication-plugin=mysql_native_password for _ in $(seq 1 60); do if docker exec mysql-live mysqladmin -uquerya -pquerya --silent ping 2>/dev/null; then echo "MySQL is up"