From 99bbd90b0da01690bd1193898138c64008ed71ad Mon Sep 17 00:00:00 2001
From: Erik Johnston <erik@matrix.org>
Date: Mon, 15 Aug 2016 09:45:44 +0100
Subject: [PATCH] Always run txn.after_callbacks

---
 synapse/storage/_base.py | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py
index 0117fdc639..e516b6de3e 100644
--- a/synapse/storage/_base.py
+++ b/synapse/storage/_base.py
@@ -305,13 +305,14 @@ class SQLBaseStore(object):
                     func, *args, **kwargs
                 )
 
-        with PreserveLoggingContext():
-            result = yield self._db_pool.runWithConnection(
-                inner_func, *args, **kwargs
-            )
-
-        for after_callback, after_args in after_callbacks:
-            after_callback(*after_args)
+        try:
+            with PreserveLoggingContext():
+                result = yield self._db_pool.runWithConnection(
+                    inner_func, *args, **kwargs
+                )
+        finally:
+            for after_callback, after_args in after_callbacks:
+                after_callback(*after_args)
         defer.returnValue(result)
 
     @defer.inlineCallbacks
-- 
GitLab