From e76881d64ac50ce1e94f485c4e54ea99f7499a0d Mon Sep 17 00:00:00 2001 From: timedout Date: Sat, 30 May 2026 19:24:48 +0100 Subject: [PATCH] feat: Make logging more verbose to diagnose the aranjesplosion --- .../rooms/event_handler/fetch_and_handle_outliers.rs | 6 +++--- src/service/rooms/event_handler/handle_incoming_pdu.rs | 6 +++++- src/service/rooms/event_handler/handle_outlier_pdu.rs | 1 + src/service/rooms/event_handler/parse_incoming_pdu.rs | 1 + src/service/rooms/event_handler/upgrade_outlier_pdu.rs | 1 + 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/service/rooms/event_handler/fetch_and_handle_outliers.rs b/src/service/rooms/event_handler/fetch_and_handle_outliers.rs index bff76a382..6312115cb 100644 --- a/src/service/rooms/event_handler/fetch_and_handle_outliers.rs +++ b/src/service/rooms/event_handler/fetch_and_handle_outliers.rs @@ -548,12 +548,12 @@ impl super::Service { if pdu.depth < min_depth { debug_warn!( - elapsed=?start.elapsed(),"Received PDU with depth {} below min_depth {}, ignoring", + elapsed=?start.elapsed(),"Received PDU with depth {} below min_depth {}", pdu.depth, min_depth ); - discovered.insert(event_id.clone(), pdu); - continue; + // discovered.insert(event_id.clone(), pdu); + // continue; } for prev_event_id in pdu.prev_events() { diff --git a/src/service/rooms/event_handler/handle_incoming_pdu.rs b/src/service/rooms/event_handler/handle_incoming_pdu.rs index def071857..83297d0a3 100644 --- a/src/service/rooms/event_handler/handle_incoming_pdu.rs +++ b/src/service/rooms/event_handler/handle_incoming_pdu.rs @@ -226,13 +226,15 @@ impl super::Service { .remove(room_id); }} + info!("[TODO] Handling PDU as outlier"); let (incoming_pdu, val) = self .handle_outlier_pdu(origin, create_event, event_id, room_id, value, false) .await .inspect_err(|e| error!("[TODO] Failed to handle outlier PDU: {e:?}"))?; - + info!("[TODO] Finished handling PDU as outlier"); // 8. if not timeline event: stop if !is_timeline_event { + info!("[TODO] Not upgrading PDU"); return Ok(None); } @@ -247,10 +249,12 @@ impl super::Service { // 9. Fetch any missing prev events doing all checks listed here starting at 1. // These are timeline events + info!("[TODO] Fetching prev events"); self.fetch_prevs(room_id, create_event, &incoming_pdu, origin) .await .inspect_err(|e| error!("[TODO] Failed to fetch_prevs: {e:?}"))?; + info!("[TODO] Finished fetching prev events, attempting to upgrade"); // Done with prev events, now handling the incoming event self.upgrade_outlier_to_timeline_pdu(incoming_pdu, val, create_event, origin, room_id) .await diff --git a/src/service/rooms/event_handler/handle_outlier_pdu.rs b/src/service/rooms/event_handler/handle_outlier_pdu.rs index c41c3efdf..d018dd467 100644 --- a/src/service/rooms/event_handler/handle_outlier_pdu.rs +++ b/src/service/rooms/event_handler/handle_outlier_pdu.rs @@ -18,6 +18,7 @@ impl super::Service { /// Handles a PDU as an outlier, performing basic checks like signatures and /// hashes, proclaimed event auth, and then adding it to the outlier tree. #[allow(clippy::too_many_arguments)] + #[tracing::instrument(name="handle_outlier", skip_all, fields(%event_id))] pub(super) async fn handle_outlier_pdu<'a, Pdu>( &self, origin: &'a ServerName, diff --git a/src/service/rooms/event_handler/parse_incoming_pdu.rs b/src/service/rooms/event_handler/parse_incoming_pdu.rs index 067851515..34d102a2b 100644 --- a/src/service/rooms/event_handler/parse_incoming_pdu.rs +++ b/src/service/rooms/event_handler/parse_incoming_pdu.rs @@ -118,6 +118,7 @@ impl super::Service { Ok((event_id, value)) } + #[tracing::instrument(name = "parse", skip_all)] pub async fn parse_incoming_pdu(&self, pdu: &RawJsonValue) -> Result { let value = serde_json::from_str::(pdu.get()).map_err(|e| { err!(BadServerResponse(debug_warn!("Error parsing incoming event {e:?}"))) diff --git a/src/service/rooms/event_handler/upgrade_outlier_pdu.rs b/src/service/rooms/event_handler/upgrade_outlier_pdu.rs index 7d8236382..a1f9850aa 100644 --- a/src/service/rooms/event_handler/upgrade_outlier_pdu.rs +++ b/src/service/rooms/event_handler/upgrade_outlier_pdu.rs @@ -24,6 +24,7 @@ use crate::rooms::{ }; impl super::Service { + #[tracing::instrument(name="upgrade_outlier", skip_all, fields(event_id=%incoming_pdu.event_id()))] pub(super) async fn upgrade_outlier_to_timeline_pdu( &self, incoming_pdu: PduEvent,