Stop synapse from saving messages in device_inbox for hidden devices. (#10097)
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
This commit is contained in:
parent
e320f5dba3
commit
29ffd680bf
|
@ -0,0 +1 @@
|
|||
Fix a long-standing bug which allowed hidden devices to receive to-device messages, resulting in unnecessary database bloat.
|
|
@ -489,10 +489,12 @@ class DeviceInboxWorkerStore(SQLBaseStore):
|
|||
devices = list(messages_by_device.keys())
|
||||
if len(devices) == 1 and devices[0] == "*":
|
||||
# Handle wildcard device_ids.
|
||||
# We exclude hidden devices (such as cross-signing keys) here as they are
|
||||
# not expected to receive to-device messages.
|
||||
devices = self.db_pool.simple_select_onecol_txn(
|
||||
txn,
|
||||
table="devices",
|
||||
keyvalues={"user_id": user_id},
|
||||
keyvalues={"user_id": user_id, "hidden": False},
|
||||
retcol="device_id",
|
||||
)
|
||||
|
||||
|
@ -505,10 +507,12 @@ class DeviceInboxWorkerStore(SQLBaseStore):
|
|||
if not devices:
|
||||
continue
|
||||
|
||||
# We exclude hidden devices (such as cross-signing keys) here as they are
|
||||
# not expected to receive to-device messages.
|
||||
rows = self.db_pool.simple_select_many_txn(
|
||||
txn,
|
||||
table="devices",
|
||||
keyvalues={"user_id": user_id},
|
||||
keyvalues={"user_id": user_id, "hidden": False},
|
||||
column="device_id",
|
||||
iterable=devices,
|
||||
retcols=("device_id",),
|
||||
|
|
Loading…
Reference in New Issue