Remove error spam when users query the keys of departed remote users (#13826)
The error message introduced in #13749 has turned out to be very spammy. Remove it for now.pull/13843/head
parent
384dca53d6
commit
d64e85197a
|
@ -0,0 +1 @@
|
||||||
|
Fix a long standing bug where device lists would remain cached when remote users left and rejoined the last room shared with the local homeserver.
|
|
@ -188,18 +188,21 @@ class E2eKeysHandler:
|
||||||
)
|
)
|
||||||
invalid_cached_users = cached_users - valid_cached_users
|
invalid_cached_users = cached_users - valid_cached_users
|
||||||
if invalid_cached_users:
|
if invalid_cached_users:
|
||||||
# Fix up results. If we get here, there is either a bug in device
|
# Fix up results. If we get here, it means there was either a bug in
|
||||||
# list tracking, or we hit the race mentioned above.
|
# device list tracking, or we hit the race mentioned above.
|
||||||
|
# TODO: In practice, this path is hit fairly often in existing
|
||||||
|
# deployments when clients query the keys of departed remote
|
||||||
|
# users. A background update to mark the appropriate device
|
||||||
|
# lists as unsubscribed is needed.
|
||||||
|
# https://github.com/matrix-org/synapse/issues/13651
|
||||||
|
# Note that this currently introduces a failure mode when clients
|
||||||
|
# are trying to decrypt old messages from a remote user whose
|
||||||
|
# homeserver is no longer available. We may want to consider falling
|
||||||
|
# back to the cached data when we fail to retrieve a device list
|
||||||
|
# over federation for such remote users.
|
||||||
user_ids_not_in_cache.update(invalid_cached_users)
|
user_ids_not_in_cache.update(invalid_cached_users)
|
||||||
for invalid_user_id in invalid_cached_users:
|
for invalid_user_id in invalid_cached_users:
|
||||||
remote_results.pop(invalid_user_id)
|
remote_results.pop(invalid_user_id)
|
||||||
# This log message may be removed if it turns out it's almost
|
|
||||||
# entirely triggered by races.
|
|
||||||
logger.error(
|
|
||||||
"Devices for %s were cached, but the server no longer shares "
|
|
||||||
"any rooms with them. The cached device lists are stale.",
|
|
||||||
invalid_cached_users,
|
|
||||||
)
|
|
||||||
|
|
||||||
for user_id, devices in remote_results.items():
|
for user_id, devices in remote_results.items():
|
||||||
user_devices = results.setdefault(user_id, {})
|
user_devices = results.setdefault(user_id, {})
|
||||||
|
|
Loading…
Reference in New Issue