From d56f48038a07fd76d2ce08220a4061f85006bf3b Mon Sep 17 00:00:00 2001
From: Sean Quah <8349537+squahtx@users.noreply.github.com>
Date: Mon, 28 Nov 2022 15:25:18 +0000
Subject: [PATCH] Fix logging context warnings due to common usage metrics
 setup (#14574)

`setup()` is run under the sentinel context manager, so we wrap the
initial update in a background process. Before this change, Synapse
would log two warnings on startup:
    Starting db txn 'count_daily_users' from sentinel context
    Starting db connection from sentinel context: metrics will be lost

Signed-off-by: Sean Quah <seanq@matrix.org>
---
 changelog.d/14574.bugfix                | 1 +
 synapse/metrics/common_usage_metrics.py | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)
 create mode 100644 changelog.d/14574.bugfix

diff --git a/changelog.d/14574.bugfix b/changelog.d/14574.bugfix
new file mode 100644
index 0000000000..fac85ec9b0
--- /dev/null
+++ b/changelog.d/14574.bugfix
@@ -0,0 +1 @@
+Fix a bug introduced in Synapse 1.67.0 where two logging context warnings would be logged on startup.
diff --git a/synapse/metrics/common_usage_metrics.py b/synapse/metrics/common_usage_metrics.py
index 0a22ea3d92..6e05b043d3 100644
--- a/synapse/metrics/common_usage_metrics.py
+++ b/synapse/metrics/common_usage_metrics.py
@@ -54,7 +54,9 @@ class CommonUsageMetricsManager:
 
     async def setup(self) -> None:
         """Keep the gauges for common usage metrics up to date."""
-        await self._update_gauges()
+        run_as_background_process(
+            desc="common_usage_metrics_update_gauges", func=self._update_gauges
+        )
         self._clock.looping_call(
             run_as_background_process,
             5 * 60 * 1000,
-- 
GitLab