summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2020-10-02 12:22:19 +0100
committerGitHub <noreply@github.com>2020-10-02 12:22:19 +0100
commit695240d34a9dd1c34379ded1fbbbe42a1850549e (patch)
treeb8ab12b922cf6217e91baf279db02607f267cdfa
parentConvert additional templates to Jinja (#8444) (diff)
downloadsynapse-695240d34a9dd1c34379ded1fbbbe42a1850549e.tar.xz
Fix DB query on startup for negative streams. (#8447)
For negative streams we have to negate the internal stream ID before
querying the DB.

The effect of this bug was to query far too many rows, slowing start up
time, but we would correctly filter the results afterwards so there was
no ill effect.
-rw-r--r--changelog.d/8447.bugfix1
-rw-r--r--synapse/storage/util/id_generators.py2
2 files changed, 2 insertions, 1 deletions
diff --git a/changelog.d/8447.bugfix b/changelog.d/8447.bugfix
new file mode 100644
index 0000000000..88edaf322e
--- /dev/null
+++ b/changelog.d/8447.bugfix
@@ -0,0 +1 @@
+Fix DB query on startup for negative streams which caused long start up times. Introduced in #8374.
diff --git a/synapse/storage/util/id_generators.py b/synapse/storage/util/id_generators.py
index 02fbb656e8..48efbb5067 100644
--- a/synapse/storage/util/id_generators.py
+++ b/synapse/storage/util/id_generators.py
@@ -341,7 +341,7 @@ class MultiWriterIdGenerator:
                 "cmp": "<=" if self._positive else ">=",
             }
             sql = self._db.engine.convert_param_style(sql)
-            cur.execute(sql, (min_stream_id,))
+            cur.execute(sql, (min_stream_id * self._return_factor,))
 
             self._persisted_upto_position = min_stream_id