diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2021-12-13 19:01:27 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-13 19:01:27 +0000 |
commit | ff6fd52160686dc0b8418c9448b4e64fa45060a1 (patch) | |
tree | c175f6fff1d40d29d97b702598afc5ceda404951 /synapse/storage/databases | |
parent | Move HTML parsing to a separate file for URL previews. (#11566) (diff) | |
download | synapse-ff6fd52160686dc0b8418c9448b4e64fa45060a1.tar.xz |
checks for generators in database functions (#11564)
A couple of safety-checks to hopefully stop people doing what I just did, and create a storage function which only works the first time it is called (and not when it is re-run due to a database concurrency error or similar).
Diffstat (limited to 'synapse/storage/databases')
-rw-r--r-- | synapse/storage/databases/main/presence.py | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/synapse/storage/databases/main/presence.py b/synapse/storage/databases/main/presence.py index 02d534ae45..cbf9ec38f7 100644 --- a/synapse/storage/databases/main/presence.py +++ b/synapse/storage/databases/main/presence.py @@ -269,6 +269,7 @@ class PresenceStore(PresenceBackgroundUpdateStore): """ # Add user entries to the table, updating the presence_stream_id column if the user already # exists in the table. + presence_stream_id = self._presence_id_gen.get_current_token() await self.db_pool.simple_upsert_many( table="users_to_send_full_presence_to", key_names=("user_id",), @@ -279,9 +280,7 @@ class PresenceStore(PresenceBackgroundUpdateStore): # devices at different times, each device will receive full presence once - when # the presence stream ID in their sync token is less than the one in the table # for their user ID. - value_values=( - (self._presence_id_gen.get_current_token(),) for _ in user_ids - ), + value_values=[(presence_stream_id,) for _ in user_ids], desc="add_users_to_send_full_presence_to", ) |