summary refs log tree commit diff
diff options
context:
space:
mode:
-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)