fix: Mark prev events as referenced as we come across them

This commit is contained in:
timedout
2026-08-22 20:14:43 +01:00
parent 8d95163da4
commit 681daed5e8
+2 -6
View File
@@ -207,8 +207,10 @@ async fn progress_state_and_extremities(
// status.
let mut ancestors_todo: VecDeque<OwnedEventId> =
VecDeque::from_iter(incoming_pdu.prev_events.clone());
let room_id = incoming_pdu.room_id_or_hash();
while let Some(prev_event_id) = ancestors_todo.pop_front() {
new_extremities.remove(&prev_event_id);
self.services.pdu_metadata.mark_as_referenced(&room_id, once(prev_event_id.as_ref()));
let Ok(prev_event) = self.get_pdu(&prev_event_id).await else {
continue;
};
@@ -233,12 +235,6 @@ async fn progress_state_and_extremities(
})
.collect::<Vec<_>>()
.await;
for ancestor_id in &ancestors_todo {
self.services.pdu_metadata.mark_as_referenced(
&incoming_pdu.room_id_or_hash(),
once(ancestor_id.as_ref()),
);
}
ancestors_todo.extend(outlier_prevs);
}