From 2be5a2b07becdbf0957008ece74be3b3f957b233 Mon Sep 17 00:00:00 2001 From: Sean Quah <8349537+squahtx@users.noreply.github.com> Date: Thu, 19 May 2022 20:17:10 +0100 Subject: [PATCH] Fix `RetryDestinationLimiter` re-starting finished log contexts (#12803) Signed-off-by: Sean Quah --- changelog.d/12803.bugfix | 1 + synapse/util/retryutils.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 changelog.d/12803.bugfix diff --git a/changelog.d/12803.bugfix b/changelog.d/12803.bugfix new file mode 100644 index 000000000..6ddd3d24e --- /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 81bfed268..d0a69ff84 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)