From 5e3ec5e7c54457b3504bc0364b42ae9f992efdbf Mon Sep 17 00:00:00 2001 From: markov Date: Thu, 26 Feb 2026 15:11:47 +0100 Subject: [PATCH] Fix #1: SELECT FOR UPDATE on task_counter to prevent race condition --- src/tracker/api/tasks.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tracker/api/tasks.py b/src/tracker/api/tasks.py index 9d5ea8b..1c321c5 100644 --- a/src/tracker/api/tasks.py +++ b/src/tracker/api/tasks.py @@ -227,7 +227,9 @@ async def create_task( current_member: Member = Depends(get_current_member), db: AsyncSession = Depends(get_db), ): - result = await db.execute(select(Project).where(Project.slug == project_slug)) + result = await db.execute( + select(Project).where(Project.slug == project_slug).with_for_update() + ) project = result.scalar_one_or_none() if not project: raise HTTPException(404, "Project not found")