From 5691cf08683688101bd41076e71623db6ab8fe0c Mon Sep 17 00:00:00 2001 From: Lambda Date: Fri, 13 Sep 2024 13:31:04 +0000 Subject: [PATCH] Better debugging for signing key fetching --- src/service/rooms/event_handler.rs | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/service/rooms/event_handler.rs b/src/service/rooms/event_handler.rs index cd9ca375..23b08bf7 100644 --- a/src/service/rooms/event_handler.rs +++ b/src/service/rooms/event_handler.rs @@ -1909,17 +1909,24 @@ impl Service { query_via_trusted_servers: bool, ) -> Result { let contains_all_ids = |keys: &SigningKeys| { - signature_ids.iter().all(|id| { - keys.verify_keys + for id in &signature_ids { + let in_verify_keys = keys + .verify_keys .keys() .map(ToString::to_string) - .any(|key_id| id == &key_id) - || keys - .old_verify_keys - .keys() - .map(ToString::to_string) - .any(|key_id| id == &key_id) - }) + .any(|key_id| id == &key_id); + let in_old_verify_keys = keys + .old_verify_keys + .keys() + .map(ToString::to_string) + .any(|key_id| id == &key_id); + + if !in_verify_keys && !in_old_verify_keys { + trace!(id, "signature key not yet in known set"); + return false; + } + } + true }; let permit = services() @@ -1982,6 +1989,9 @@ impl Service { debug!( server = %origin, + key_ids = ?result.verify_keys.keys().collect::>(), + old_key_ids = + ?result.old_verify_keys.keys().collect::>(), ts_threshold = %ts_threshold.get(), ts_valid_until = %result.valid_until_ts.get(), "Loaded signing keys for server", @@ -2000,6 +2010,7 @@ impl Service { } expires_soon_or_has_expired = true; + trace!("Found all keys, but they will expire too soon"); } }