diff options
author | Sean Quah <8349537+squahtx@users.noreply.github.com> | 2023-01-26 10:38:49 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-26 10:38:49 +0000 |
commit | cf66d712c615b96bce19e44118cce1ebda41d0b8 (patch) | |
tree | 829cb0684566ce09e8cb987a1cc4b67e13e643b8 /synapse/storage/databases | |
parent | Fix link syntax in changelog (diff) | |
download | synapse-cf66d712c615b96bce19e44118cce1ebda41d0b8.tar.xz |
Fix initialization of `_device_list_id_gen` (#14914)
On startup, the `_device_list_id_gen` stream id generator is initialized using the maximum stream id seen in a list of tables. When we started populating the `device_list_remote_pending` table in #13913, we forgot to add it to the aforementioned list of tables, so the stream id generator can hand out old stream ids after a restart. The end result is that Synapse can fail to handle device list update EDUs after a restart when a partial state join is in progress. Add the `device_list_remote_pending` table to the list of tables to consider when initializing the `_device_list_id_gen` stream id generator. Signed-off-by: Sean Quah <seanq@matrix.org>
Diffstat (limited to 'synapse/storage/databases')
-rw-r--r-- | synapse/storage/databases/main/devices.py | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/synapse/storage/databases/main/devices.py b/synapse/storage/databases/main/devices.py index 903606fb46..e8b6cc6b80 100644 --- a/synapse/storage/databases/main/devices.py +++ b/synapse/storage/databases/main/devices.py @@ -99,6 +99,7 @@ class DeviceWorkerStore(RoomMemberWorkerStore, EndToEndKeyWorkerStore): ("user_signature_stream", "stream_id"), ("device_lists_outbound_pokes", "stream_id"), ("device_lists_changes_in_room", "stream_id"), + ("device_lists_remote_pending", "stream_id"), ], is_writer=hs.config.worker.worker_app is None, ) |