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/federation/transaction_queue.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/federation/transaction_queue.py')
-rw-r--r-- | synapse/federation/transaction_queue.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/synapse/federation/transaction_queue.py b/synapse/federation/transaction_queue.py index 7a3c9cbb70..3e7809b04f 100644 --- a/synapse/federation/transaction_queue.py +++ b/synapse/federation/transaction_queue.py @@ -20,7 +20,7 @@ from .persistence import TransactionActions from .units import Transaction, Edu from synapse.api.errors import HttpResponseException -from synapse.util import logcontext +from synapse.util import logcontext, PreserveLoggingContext from synapse.util.async import run_on_reactor from synapse.util.retryutils import NotRetryingDestination, get_retry_limiter from synapse.util.metrics import measure_func @@ -146,7 +146,6 @@ class TransactionQueue(object): else: return not destination.startswith("localhost") - @defer.inlineCallbacks def notify_new_events(self, current_id): """This gets called when we have some new events we might want to send out to other servers. @@ -156,6 +155,13 @@ class TransactionQueue(object): if self._is_processing: return + # fire off a processing loop in the background. It's likely it will + # outlast the current request, so run it in the sentinel logcontext. + with PreserveLoggingContext(): + self._process_event_queue_loop() + + @defer.inlineCallbacks + def _process_event_queue_loop(self): try: self._is_processing = True while True: |