From 9633a374213b5525ae7ab22e75dccc1ae95b314a Mon Sep 17 00:00:00 2001 From: timedout Date: Wed, 27 May 2026 00:33:57 +0100 Subject: [PATCH] perf: Don't re-process events as outliers --- src/service/rooms/event_handler/handle_outlier_pdu.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/service/rooms/event_handler/handle_outlier_pdu.rs b/src/service/rooms/event_handler/handle_outlier_pdu.rs index 97e7ceb31..5431b490c 100644 --- a/src/service/rooms/event_handler/handle_outlier_pdu.rs +++ b/src/service/rooms/event_handler/handle_outlier_pdu.rs @@ -81,6 +81,14 @@ impl super::Service { CanonicalJsonValue::String(event_id.as_str().to_owned()), ); + if let Ok(pdu_event) = self.services.timeline.get_pdu(event_id).await { + debug!( + "Already have event {event_id} as an outlier or timeline event, not \ + re-processing" + ); + return Ok((pdu_event, incoming_pdu)); + } + let pdu_event = serde_json::from_value::( serde_json::to_value(&incoming_pdu).expect("CanonicalJsonObj is a valid JsonValue"), )