From f80e1e89a52b95a12eacfcb63a33c9fe69ee000f Mon Sep 17 00:00:00 2001 From: timedout Date: Tue, 26 May 2026 23:57:47 +0100 Subject: [PATCH] fix: Lower floor for min depth --- src/service/rooms/event_handler/fetch_prev.rs | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/service/rooms/event_handler/fetch_prev.rs b/src/service/rooms/event_handler/fetch_prev.rs index 9be7b2e96..f25b90085 100644 --- a/src/service/rooms/event_handler/fetch_prev.rs +++ b/src/service/rooms/event_handler/fetch_prev.rs @@ -2,11 +2,11 @@ use conduwuit::{ Event, PduEvent, debug, debug_info, - utils::{BoolExt, IterStream, stream::BroadbandExt}, + utils::{BoolExt, IterStream, math::try_into, stream::BroadbandExt}, warn, }; use futures::StreamExt; -use ruma::{RoomId, ServerName}; +use ruma::{RoomId, ServerName, UInt}; use crate::rooms::event_handler::build_local_dag; @@ -45,19 +45,28 @@ pub(super) async fn fetch_prevs( .collect::>() .await; - let backfilled = self + let gapfilled = self .get_missing_events( room_id, incoming_pdu, tail, origin, - self.services.metadata.get_mindepth(room_id).await, + self.services + .metadata + .get_mindepth(room_id) + .await + .saturating_sub( + u8::try_from(incoming_pdu.prev_events.len()) + .unwrap() + .saturating_mul(2) + .into(), + ), ) .await?; - debug_info!("Fetched {} missing events", backfilled.len()); + debug_info!("Fetched {} missing events", gapfilled.len()); // Persist all fetched events - let mapped = backfilled + let mapped = gapfilled .iter() .map(|(eid, evt)| { let mut obj = evt.to_canonical_object();