summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/10455.bugfix1
-rw-r--r--synapse/storage/databases/main/event_federation.py7
2 files changed, 6 insertions, 2 deletions
diff --git a/changelog.d/10455.bugfix b/changelog.d/10455.bugfix
new file mode 100644
index 0000000000..23c74a3c89
--- /dev/null
+++ b/changelog.d/10455.bugfix
@@ -0,0 +1 @@
+Fix `synapse_federation_server_oldest_inbound_pdu_in_staging` Prometheus metric to not report a max age of 51 years when the queue is empty.
diff --git a/synapse/storage/databases/main/event_federation.py b/synapse/storage/databases/main/event_federation.py
index d39368c20e..f4a00b0736 100644
--- a/synapse/storage/databases/main/event_federation.py
+++ b/synapse/storage/databases/main/event_federation.py
@@ -1227,12 +1227,15 @@ class EventFederationWorkerStore(EventsWorkerStore, SignatureWorkerStore, SQLBas
             (count,) = txn.fetchone()
 
             txn.execute(
-                "SELECT coalesce(min(received_ts), 0) FROM federation_inbound_events_staging"
+                "SELECT min(received_ts) FROM federation_inbound_events_staging"
             )
 
             (received_ts,) = txn.fetchone()
 
-            age = self._clock.time_msec() - received_ts
+            # If there is nothing in the staging area default it to 0.
+            age = 0
+            if received_ts is not None:
+                age = self._clock.time_msec() - received_ts
 
             return count, age