From 7d036760f54f1c9fa4e6744a364d09a31ff07321 Mon Sep 17 00:00:00 2001 From: ZdenekSrotyr Date: Thu, 9 Apr 2026 18:42:56 +0200 Subject: [PATCH] fix: wrap Google OAuth DB connection in try/finally to ensure it is always closed The system DB connection opened in google_callback is now closed in a finally block, so it is released even when an exception occurs between open and close. --- app/auth/providers/google.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/auth/providers/google.py b/app/auth/providers/google.py index 4268457..45e019d 100644 --- a/app/auth/providers/google.py +++ b/app/auth/providers/google.py @@ -77,13 +77,15 @@ async def google_callback(request: Request): import uuid conn = get_system_db() - repo = UserRepository(conn) - user = repo.get_by_email(email) - if not user: - user_id = str(uuid.uuid4()) - repo.create(id=user_id, email=email, name=name, role="analyst") + try: + repo = UserRepository(conn) user = repo.get_by_email(email) - conn.close() + if not user: + user_id = str(uuid.uuid4()) + repo.create(id=user_id, email=email, name=name, role="analyst") + user = repo.get_by_email(email) + finally: + conn.close() # Issue JWT jwt_token = create_access_token(user["id"], user["email"], user["role"])