diff options
author | Richard van der Hoff <richard@matrix.org> | 2017-11-28 14:37:11 +0000 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2017-11-28 15:26:14 +0000 |
commit | d4fb4f7c52e24c36204c6c3299dfa04cc05242c8 (patch) | |
tree | c5eedee188c0454d9167d47c0b27893769585786 /synapse/notifier.py | |
parent | Merge pull request #2697 from matrix-org/rav/fix_urlcache_index_error (diff) | |
download | synapse-d4fb4f7c52e24c36204c6c3299dfa04cc05242c8.tar.xz |
Clear logcontext before starting fed txn queue runner
These processes take a long time compared to the request, so there is lots of "Entering|Restoring dead context" in the logs. Let's try to shut it up a bit.
Diffstat (limited to 'synapse/notifier.py')
-rw-r--r-- | synapse/notifier.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/synapse/notifier.py b/synapse/notifier.py index 626da778cd..ef042681bc 100644 --- a/synapse/notifier.py +++ b/synapse/notifier.py @@ -255,9 +255,7 @@ class Notifier(object): ) if self.federation_sender: - preserve_fn(self.federation_sender.notify_new_events)( - room_stream_id - ) + self.federation_sender.notify_new_events(room_stream_id) if event.type == EventTypes.Member and event.membership == Membership.JOIN: self._user_joined_room(event.state_key, event.room_id) @@ -297,8 +295,7 @@ class Notifier(object): def on_new_replication_data(self): """Used to inform replication listeners that something has happend without waking up any of the normal user event streams""" - with PreserveLoggingContext(): - self.notify_replication() + self.notify_replication() @defer.inlineCallbacks def wait_for_events(self, user_id, timeout, callback, room_ids=None, @@ -516,8 +513,14 @@ class Notifier(object): self.replication_deferred = ObservableDeferred(defer.Deferred()) deferred.callback(None) - for cb in self.replication_callbacks: - preserve_fn(cb)() + # the callbacks may well outlast the current request, so we run + # them in the sentinel logcontext. + # + # (ideally it would be up to the callbacks to know if they were + # starting off background processes and drop the logcontext + # accordingly, but that requires more changes) + for cb in self.replication_callbacks: + cb() @defer.inlineCallbacks def wait_for_replication(self, callback, timeout): |