diff options
author | Erik Johnston <erik@matrix.org> | 2022-12-09 13:31:32 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-09 13:31:32 +0000 |
commit | 94bc21e69f89ad873ad7a0deb6d9c4ff3cb480ef (patch) | |
tree | 8229c53299764f5efd515453cc8528a6ace9b044 /synapse/handlers/device.py | |
parent | Delete stale non-e2e devices for users, take 2 (#14595) (diff) | |
download | synapse-94bc21e69f89ad873ad7a0deb6d9c4ff3cb480ef.tar.xz |
Limit the number of devices we delete at once (#14649)
Diffstat (limited to 'synapse/handlers/device.py')
-rw-r--r-- | synapse/handlers/device.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py index 7674c187ef..c935c7be90 100644 --- a/synapse/handlers/device.py +++ b/synapse/handlers/device.py @@ -458,10 +458,12 @@ class DeviceHandler(DeviceWorkerHandler): async def _prune_too_many_devices(self, user_id: str) -> None: """Delete any excess old devices this user may have.""" - device_ids = await self.store.check_too_many_devices_for_user(user_id) + device_ids = await self.store.check_too_many_devices_for_user(user_id, 100) if not device_ids: return + logger.info("Pruning %d old devices for user %s", len(device_ids), user_id) + # We don't want to block and try and delete tonnes of devices at once, # so we cap the number of devices we delete synchronously. first_batch, remaining_device_ids = device_ids[:10], device_ids[10:] |