From a9d816717fde4e2ffc4ba3530c464ce844254ec5 Mon Sep 17 00:00:00 2001 From: Matt Hills Date: Sat, 27 Dec 2025 21:27:13 -0500 Subject: [PATCH] Fix race condition in chunked upload for parallel uploads - Add BEGIN IMMEDIATE transaction to add_chunk() function - Prevents concurrent chunk uploads from overwriting each other - Fixes issue where parallel uploads would lose chunks in database - Critical for supporting 2+ parallel chunk uploads on mobile --- src/models/chunk_model.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/models/chunk_model.py b/src/models/chunk_model.py index c982019..07b6482 100644 --- a/src/models/chunk_model.py +++ b/src/models/chunk_model.py @@ -81,6 +81,9 @@ def add_chunk(upload_id, chunk_index): with get_db() as conn: cursor = conn.cursor() + # Use IMMEDIATE transaction to prevent race conditions with parallel uploads + cursor.execute("BEGIN IMMEDIATE") + # Get current received_chunks row = cursor.execute(""" SELECT received_chunks FROM chunk_sessions WHERE upload_id = ?