diff options
author | Erik Johnston <erikj@jki.re> | 2019-03-08 09:54:54 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-08 09:54:54 +0000 |
commit | 469b66c10292f975ca9aa91693c32b02200fab87 (patch) | |
tree | 896c0a341b626026719557eca00e7a33a30c329a /synapse/handlers | |
parent | Merge pull request #4828 from matrix-org/erikj/debug_device_lists (diff) | |
parent | Newsfile (diff) | |
download | synapse-469b66c10292f975ca9aa91693c32b02200fab87.tar.xz |
Merge pull request #4829 from matrix-org/erikj/device_list_seen_updates
When re-syncing device lists reset the state
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/device.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py index 03644a93cc..b398848079 100644 --- a/synapse/handlers/device.py +++ b/synapse/handlers/device.py @@ -597,6 +597,10 @@ class DeviceListEduUpdater(object): ) device_ids = [device["device_id"] for device in devices] yield self.device_handler.notify_device_update(user_id, device_ids) + + # We clobber the seen updates since we've re-synced from a given + # point. + self._seen_updates[user_id] = set([stream_id]) else: # Simply update the single device, since we know that is the only # change (because of the single prev_id matching the current cache) @@ -609,9 +613,9 @@ class DeviceListEduUpdater(object): user_id, [device_id for device_id, _, _, _ in pending_updates] ) - self._seen_updates.setdefault(user_id, set()).update( - stream_id for _, stream_id, _, _ in pending_updates - ) + self._seen_updates.setdefault(user_id, set()).update( + stream_id for _, stream_id, _, _ in pending_updates + ) @defer.inlineCallbacks def _need_to_do_resync(self, user_id, updates): |