summary refs log tree commit diff
path: root/synapse/replication/tcp/resource.py
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2017-11-23 23:19:43 +0000
committerRichard van der Hoff <richard@matrix.org>2017-11-23 23:19:43 +0000
commit0edf085b683c8ba0ad8cf207d5bc8489b1e8cdbe (patch)
treef2f64e2ffe29849810fee73a841ceeb75be78bf3 /synapse/replication/tcp/resource.py
parentMerge pull request #2701 from matrix-org/rav/one_mediarepo_to_rule_them_all (diff)
downloadsynapse-0edf085b683c8ba0ad8cf207d5bc8489b1e8cdbe.tar.xz
Fix some logcontext leaks in replication resource
The @measure_func annotations rely on the wrapped function respecting the
logcontext rules. Add the necessary yields to make this work.
Diffstat (limited to '')
-rw-r--r--synapse/replication/tcp/resource.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/synapse/replication/tcp/resource.py b/synapse/replication/tcp/resource.py
index 1d03e79b85..786c3fe864 100644
--- a/synapse/replication/tcp/resource.py
+++ b/synapse/replication/tcp/resource.py
@@ -216,11 +216,12 @@ class ReplicationStreamer(object):
             self.federation_sender.federation_ack(token)
 
     @measure_func("repl.on_user_sync")
+    @defer.inlineCallbacks
     def on_user_sync(self, conn_id, user_id, is_syncing, last_sync_ms):
         """A client has started/stopped syncing on a worker.
         """
         user_sync_counter.inc()
-        self.presence_handler.update_external_syncs_row(
+        yield self.presence_handler.update_external_syncs_row(
             conn_id, user_id, is_syncing, last_sync_ms,
         )
 
@@ -244,11 +245,12 @@ class ReplicationStreamer(object):
         getattr(self.store, cache_func).invalidate(tuple(keys))
 
     @measure_func("repl.on_user_ip")
+    @defer.inlineCallbacks
     def on_user_ip(self, user_id, access_token, ip, user_agent, device_id, last_seen):
         """The client saw a user request
         """
         user_ip_cache_counter.inc()
-        self.store.insert_client_ip(
+        yield self.store.insert_client_ip(
             user_id, access_token, ip, user_agent, device_id, last_seen,
         )