diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py
index fcb968e8f4f6645179a32c3400bf1133d130087d..9be1d12fac64d2251cfb359be23bf593413cd167 100644
--- a/synapse/storage/__init__.py
+++ b/synapse/storage/__init__.py
@@ -212,6 +212,7 @@ class DataStore(RoomMemberStore, RoomStore,
         txn = db_conn.cursor()
         txn.execute(sql, (PresenceState.OFFLINE,))
         rows = self.cursor_to_dict(txn)
+        txn.close()
 
         for row in rows:
             row["currently_active"] = bool(row["currently_active"])