From 245cb0e06487de7664550a2cc4978755ee8d92d6 Mon Sep 17 00:00:00 2001 From: timedout Date: Mon, 23 Feb 2026 20:45:44 +0000 Subject: [PATCH] fix: Write-lock individual rooms when building sync for them --- src/api/client/sync/v3/joined.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/api/client/sync/v3/joined.rs b/src/api/client/sync/v3/joined.rs index d5ffd0b2..c1a83c11 100644 --- a/src/api/client/sync/v3/joined.rs +++ b/src/api/client/sync/v3/joined.rs @@ -65,6 +65,7 @@ pub(super) async fn load_joined_room( and `join*` functions are used to perform steps in parallel which do not depend on each other. */ + let insert_lock = services.rooms.timeline.mutex_insert.lock(room_id).await; let ( account_data, ephemeral, @@ -82,6 +83,7 @@ pub(super) async fn load_joined_room( ) .boxed() .await?; + drop(insert_lock); if !timeline.is_empty() || !state_events.is_empty() { trace!(