From 3e4d6b25653f50e0840b857703e233d806b1e8d0 Mon Sep 17 00:00:00 2001 From: timedout Date: Sun, 31 May 2026 16:24:03 +0100 Subject: [PATCH] perf: Always fetch at least N events per GME --- .../rooms/event_handler/fetch_and_handle_outliers.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 18eaa0095..938321887 100644 --- a/src/service/rooms/event_handler/fetch_and_handle_outliers.rs +++ b/src/service/rooms/event_handler/fetch_and_handle_outliers.rs @@ -174,7 +174,13 @@ impl super::Service { let limit = iteration .expected_add(1) .saturating_mul(10) - .min(GET_MISSING_EVENTS_MAX_BATCH_SIZE); + .min(GET_MISSING_EVENTS_MAX_BATCH_SIZE) + .max( + // This max call ensures we fetch *at least* all the prev events the + // head has. + u16::try_from(head.prev_events.len()) + .expect("cannot have more than 20 prev events, which fits in u16"), + ); debug_info!(elapsed=?start.elapsed(), %limit, %via,