diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py
index d555a33e9a..becb8ef1ae 100644
--- a/synapse/push/push_tools.py
+++ b/synapse/push/push_tools.py
@@ -17,14 +17,15 @@ from twisted.internet import defer
from synapse.util.presentable_names import (
calculate_room_name, name_from_member_event
)
+from synapse.util.logcontext import preserve_fn, preserve_context_over_deferred
@defer.inlineCallbacks
def get_badge_count(store, user_id):
- invites, joins = yield defer.gatherResults([
- store.get_invited_rooms_for_user(user_id),
- store.get_rooms_for_user(user_id),
- ], consumeErrors=True)
+ invites, joins = yield preserve_context_over_deferred(defer.gatherResults([
+ preserve_fn(store.get_invited_rooms_for_user)(user_id),
+ preserve_fn(store.get_rooms_for_user)(user_id),
+ ], consumeErrors=True))
my_receipts_by_room = yield store.get_receipts_for_user(
user_id, "m.read",
diff --git a/synapse/push/pusherpool.py b/synapse/push/pusherpool.py
index 54c0f1b849..3837be523d 100644
--- a/synapse/push/pusherpool.py
+++ b/synapse/push/pusherpool.py
@@ -17,7 +17,7 @@
from twisted.internet import defer
import pusher
-from synapse.util.logcontext import preserve_fn
+from synapse.util.logcontext import preserve_fn, preserve_context_over_deferred
from synapse.util.async import run_on_reactor
import logging
@@ -130,10 +130,12 @@ class PusherPool:
if u in self.pushers:
for p in self.pushers[u].values():
deferreds.append(
- p.on_new_notifications(min_stream_id, max_stream_id)
+ preserve_fn(p.on_new_notifications)(
+ min_stream_id, max_stream_id
+ )
)
- yield defer.gatherResults(deferreds)
+ yield preserve_context_over_deferred(defer.gatherResults(deferreds))
except:
logger.exception("Exception in pusher on_new_notifications")
@@ -155,10 +157,10 @@ class PusherPool:
if u in self.pushers:
for p in self.pushers[u].values():
deferreds.append(
- p.on_new_receipts(min_stream_id, max_stream_id)
+ preserve_fn(p.on_new_receipts)(min_stream_id, max_stream_id)
)
- yield defer.gatherResults(deferreds)
+ yield preserve_context_over_deferred(defer.gatherResults(deferreds))
except:
logger.exception("Exception in pusher on_new_receipts")
|