From a0fd58b4c542237ed5e9f9248c3ef62b162c36bf Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Fri, 29 May 2026 19:54:10 +0100 Subject: [PATCH] =?UTF-8?q?fix(2):=20Q4.2=20mumble=20=E2=80=94=20set=20sql?= =?UTF-8?q?ite=20busy=20timeout=20via=20silent=20.timeout=20dot-command,?= =?UTF-8?q?=20not=20PRAGMA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PRAGMA busy_timeout=N emits its own result row, polluting the read-back parse (seed read back '20000\nupgrade-survives' → AssertionError 'seed did not commit', failing upgrade/backup/restore ops — though the INSERT actually committed). Switch _sqlite to 'sqlite3 -cmd ".timeout 20000"' which sets the busy timeout silently. install+custom already green (handshake/welcome/web/tcp PASS); this fixes the P4 lifecycle ops. Co-Authored-By: Claude Opus 4.8 (1M context) --- tests/mumble/ops.py | 4 +++- tests/mumble/test_backup.py | 4 +++- tests/mumble/test_restore.py | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/mumble/ops.py b/tests/mumble/ops.py index 06c6ade..f5b7b68 100644 --- a/tests/mumble/ops.py +++ b/tests/mumble/ops.py @@ -22,7 +22,9 @@ DB = "/data/mumble-server.sqlite" def _sqlite(domain, sql): - cmd = f'sqlite3 {DB} "PRAGMA busy_timeout=20000; {sql}"' + # Set the busy timeout via the SILENT `.timeout` dot-command (-cmd), NOT an inline + # `PRAGMA busy_timeout=...` (which emits its own result row and would pollute read-backs). + cmd = f'sqlite3 -cmd ".timeout 20000" {DB} "{sql}"' return lifecycle.exec_in_app(domain, ["sh", "-c", cmd], service="app").strip() diff --git a/tests/mumble/test_backup.py b/tests/mumble/test_backup.py index 0982424..334f251 100644 --- a/tests/mumble/test_backup.py +++ b/tests/mumble/test_backup.py @@ -16,7 +16,9 @@ DB = "/data/mumble-server.sqlite" def _sqlite(domain, sql): - cmd = f'sqlite3 {DB} "PRAGMA busy_timeout=20000; {sql}"' + # Set the busy timeout via the SILENT `.timeout` dot-command (-cmd), NOT an inline + # `PRAGMA busy_timeout=...` (which emits its own result row and would pollute read-backs). + cmd = f'sqlite3 -cmd ".timeout 20000" {DB} "{sql}"' return lifecycle.exec_in_app(domain, ["sh", "-c", cmd], service="app").strip() diff --git a/tests/mumble/test_restore.py b/tests/mumble/test_restore.py index 0dcb416..6cfa458 100644 --- a/tests/mumble/test_restore.py +++ b/tests/mumble/test_restore.py @@ -18,7 +18,9 @@ DB = "/data/mumble-server.sqlite" def _sqlite(domain, sql): - cmd = f'sqlite3 {DB} "PRAGMA busy_timeout=20000; {sql}"' + # Set the busy timeout via the SILENT `.timeout` dot-command (-cmd), NOT an inline + # `PRAGMA busy_timeout=...` (which emits its own result row and would pollute read-backs). + cmd = f'sqlite3 -cmd ".timeout 20000" {DB} "{sql}"' return lifecycle.exec_in_app(domain, ["sh", "-c", cmd], service="app").strip()