From 615fc0e6a7db11bcc80f262f0b70c55add190120 Mon Sep 17 00:00:00 2001 From: Jack Kingsman Date: Mon, 9 Feb 2026 19:42:16 -0800 Subject: [PATCH] Vacuum on own connection to avoid partial commits --- app/routers/packets.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/routers/packets.py b/app/routers/packets.py index 81194fe..b8ad3ff 100644 --- a/app/routers/packets.py +++ b/app/routers/packets.py @@ -1,4 +1,5 @@ import logging +import aiosqlite from hashlib import sha256 from fastapi import APIRouter, BackgroundTasks @@ -261,8 +262,9 @@ async def run_maintenance(request: MaintenanceRequest) -> MaintenanceResult: deleted = await RawPacketRepository.prune_old_undecrypted(request.prune_undecrypted_days) logger.info("Deleted %d old undecrypted packets", deleted) - # Run VACUUM to reclaim space (must be outside transaction, use executescript) - await db.conn.executescript("VACUUM;") + # Run VACUUM to reclaim space on a dedicated connection + async with aiosqlite.connect(db.db_path) as vacuum_conn: + await vacuum_conn.executescript("VACUUM;") logger.info("Database vacuumed") return MaintenanceResult(packets_deleted=deleted, vacuumed=True)