From 78cebbc3ed119df190c9d1322175418d85ef0123 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 30 Apr 2026 15:17:59 +1200 Subject: [PATCH] ci: cap paratest concurrency to 1 for SQLite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SQLite serialises writes through a single file lock. Running services like Databases and TablesDB with paratest_processes=3 produces SQLITE_BUSY storms — 97 lock errors in Databases and 283 in TablesDB on the prior run even with a 30s busy_timeout. Drop concurrency to 1 for the SQLite matrix specifically; the legacy adapter matrix keeps its existing parallelism. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c9f813a3b1..645cc28525 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -558,6 +558,13 @@ jobs: PARATEST_PROCESSES="$(nproc)" fi + # SQLite serialises writes through a single file lock; running + # heavy services in parallel produces SQLITE_BUSY storms even + # with a 30s busy_timeout. Cap concurrency to 1 for SQLite. + if [ "${{ matrix.database }}" = "SQLite" ]; then + PARATEST_PROCESSES=1 + fi + docker compose exec -T \ -e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \ -e _TESTS_OAUTH2_GITHUB_CLIENT_ID="${{ secrets.TESTS_OAUTH2_GITHUB_CLIENT_ID }}" \