fix database connection leaK

Commit 6f498e26a7e1 · Harrison Erd · 2026-05-10 14:01 -0400

Changeset
6f498e26a7e105bfa2c76f7dc3696fadf084aa2a

View source at this commit

Comments

No comments yet.

Log in to comment

Diff

diff --git a/app.py b/app.py
--- a/app.py
+++ b/app.py
@@ -1,4 +1,5 @@
 import base64
+from contextlib import contextmanager
 import datetime as dt
 import hashlib
 import hmac
@@ -215,11 +216,19 @@
     conn.execute("PRAGMA synchronous = NORMAL")
 
 
+@contextmanager
 def db_connect():
     conn = sqlite3.connect(DB_PATH, timeout=SQLITE_BUSY_TIMEOUT_MS / 1000)
     conn.row_factory = sqlite3.Row
     configure_db_connection(conn)
-    return conn
+    try:
+        yield conn
+        conn.commit()
+    except Exception:
+        conn.rollback()
+        raise
+    finally:
+        conn.close()
 
 
 def init_db():