summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/12557.misc1
-rw-r--r--synapse/handlers/device.py5
-rw-r--r--synapse/storage/databases/main/devices.py3
-rw-r--r--tests/storage/test_devices.py2
4 files changed, 7 insertions, 4 deletions
diff --git a/changelog.d/12557.misc b/changelog.d/12557.misc
new file mode 100644

index 0000000000..e4eb895ef5 --- /dev/null +++ b/changelog.d/12557.misc
@@ -0,0 +1 @@ +Reduce unnecessary work when handling remote device list updates. diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py
index 319836da2b..a91b1ee4d5 100644 --- a/synapse/handlers/device.py +++ b/synapse/handlers/device.py
@@ -505,8 +505,9 @@ class DeviceHandler(DeviceWorkerHandler): "device_list_key", position, users={user_id}, rooms=room_ids ) - # We may need to do some processing asynchronously. - self._handle_new_device_update_async() + # We may need to do some processing asynchronously for local user IDs. + if self.hs.is_mine_id(user_id): + self._handle_new_device_update_async() async def notify_user_signature_update( self, from_user_id: str, user_ids: List[str] diff --git a/synapse/storage/databases/main/devices.py b/synapse/storage/databases/main/devices.py
index 59d223a900..483dd80406 100644 --- a/synapse/storage/databases/main/devices.py +++ b/synapse/storage/databases/main/devices.py
@@ -1748,7 +1748,8 @@ class DeviceStore(DeviceWorkerStore, DeviceBackgroundUpdateStore): device_id, room_id, stream_id, - False, + # We only need to calculate outbound pokes for local users + not self.hs.is_mine_id(user_id), encoded_context, ) for room_id in room_ids diff --git a/tests/storage/test_devices.py b/tests/storage/test_devices.py
index ccc3893869..bbf079b25b 100644 --- a/tests/storage/test_devices.py +++ b/tests/storage/test_devices.py
@@ -29,7 +29,7 @@ class DeviceStoreTestCase(HomeserverTestCase): for device_id in device_ids: stream_id = self.get_success( self.store.add_device_change_to_streams( - "user_id", [device_id], ["!some:room"] + user_id, [device_id], ["!some:room"] ) )