summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/14172.bugfix1
-rw-r--r--synapse/storage/databases/main/event_push_actions.py10
2 files changed, 9 insertions, 2 deletions
diff --git a/changelog.d/14172.bugfix b/changelog.d/14172.bugfix
new file mode 100644
index 0000000000..36521c670c
--- /dev/null
+++ b/changelog.d/14172.bugfix
@@ -0,0 +1 @@
+Fix poor performance of the `event_push_backfill_thread_id` background update, which was introduced in Synapse 1.68.0rc1.
diff --git a/synapse/storage/databases/main/event_push_actions.py b/synapse/storage/databases/main/event_push_actions.py
index 87d07f7d9b..7f7bcb7094 100644
--- a/synapse/storage/databases/main/event_push_actions.py
+++ b/synapse/storage/databases/main/event_push_actions.py
@@ -297,9 +297,15 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas
             sql = f"""
             UPDATE {table_name}
             SET thread_id = 'main'
-            WHERE stream_ordering <= ? AND thread_id IS NULL
+            WHERE ? < stream_ordering AND stream_ordering <= ? AND thread_id IS NULL
             """
-            txn.execute(sql, (max_stream_ordering,))
+            txn.execute(
+                sql,
+                (
+                    start_stream_ordering,
+                    max_stream_ordering,
+                ),
+            )
 
             # Update progress.
             processed_rows = txn.rowcount