summary refs log tree commit diff
diff options
context:
space:
mode:
authorSean Quah <8349537+squahtx@users.noreply.github.com>2022-05-19 20:17:10 +0100
committerGitHub <noreply@github.com>2022-05-19 20:17:10 +0100
commit2be5a2b07becdbf0957008ece74be3b3f957b233 (patch)
tree5fdc4120f67ca1d358036bf1a85f866994c3dbf5
parentAdd a unit test for copying over arbitrary room types when upgrading a room (... (diff)
downloadsynapse-2be5a2b07becdbf0957008ece74be3b3f957b233.tar.xz
Fix `RetryDestinationLimiter` re-starting finished log contexts (#12803)
Signed-off-by: Sean Quah <seanq@matrix.org>
-rw-r--r--changelog.d/12803.bugfix1
-rw-r--r--synapse/util/retryutils.py4
2 files changed, 3 insertions, 2 deletions
diff --git a/changelog.d/12803.bugfix b/changelog.d/12803.bugfix
new file mode 100644
index 0000000000..6ddd3d24e0
--- /dev/null
+++ b/changelog.d/12803.bugfix
@@ -0,0 +1 @@
+Fix a long-standing bug where finished log contexts would be re-started when failing to contact remote homeservers.
diff --git a/synapse/util/retryutils.py b/synapse/util/retryutils.py
index 81bfed268e..d0a69ff843 100644
--- a/synapse/util/retryutils.py
+++ b/synapse/util/retryutils.py
@@ -16,8 +16,8 @@ import random
 from types import TracebackType
 from typing import TYPE_CHECKING, Any, Optional, Type
 
-import synapse.logging.context
 from synapse.api.errors import CodeMessageException
+from synapse.metrics.background_process_metrics import run_as_background_process
 from synapse.storage import DataStore
 from synapse.util import Clock
 
@@ -265,4 +265,4 @@ class RetryDestinationLimiter:
                 logger.exception("Failed to store destination_retry_timings")
 
         # we deliberately do this in the background.
-        synapse.logging.context.run_in_background(store_retry_timings)
+        run_as_background_process("store_retry_timings", store_retry_timings)