From c4fd9e1a6baf4e15754ebb7bf1f3a5b2bf7ca00a Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Mon, 9 Jun 2025 21:37:48 +0200 Subject: [PATCH] Switch to using weak transactions for queries happening on connection (#32411) Release Notes: - N/A Co-authored-by: Conrad --- crates/collab/src/db/queries/channels.rs | 6 ++++-- crates/collab/src/db/queries/contacts.rs | 4 ++-- crates/collab/src/db/queries/rooms.rs | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/crates/collab/src/db/queries/channels.rs b/crates/collab/src/db/queries/channels.rs index e26da783b7..f517256f55 100644 --- a/crates/collab/src/db/queries/channels.rs +++ b/crates/collab/src/db/queries/channels.rs @@ -501,8 +501,10 @@ impl Database { /// Returns all channels for the user with the given ID. pub async fn get_channels_for_user(&self, user_id: UserId) -> Result { - self.transaction(|tx| async move { self.get_user_channels(user_id, None, true, &tx).await }) - .await + self.weak_transaction( + |tx| async move { self.get_user_channels(user_id, None, true, &tx).await }, + ) + .await } /// Returns all channels for the user with the given ID that are descendants diff --git a/crates/collab/src/db/queries/contacts.rs b/crates/collab/src/db/queries/contacts.rs index 8521814bdb..e1e063ce23 100644 --- a/crates/collab/src/db/queries/contacts.rs +++ b/crates/collab/src/db/queries/contacts.rs @@ -15,7 +15,7 @@ impl Database { user_b_busy: bool, } - self.transaction(|tx| async move { + self.weak_transaction(|tx| async move { let user_a_participant = Alias::new("user_a_participant"); let user_b_participant = Alias::new("user_b_participant"); let mut db_contacts = contact::Entity::find() @@ -91,7 +91,7 @@ impl Database { /// Returns whether the given user is a busy (on a call). pub async fn is_user_busy(&self, user_id: UserId) -> Result { - self.transaction(|tx| async move { + self.weak_transaction(|tx| async move { let participant = room_participant::Entity::find() .filter(room_participant::Column::UserId.eq(user_id)) .one(&*tx) diff --git a/crates/collab/src/db/queries/rooms.rs b/crates/collab/src/db/queries/rooms.rs index 2eb1d0efa0..0ffc46b185 100644 --- a/crates/collab/src/db/queries/rooms.rs +++ b/crates/collab/src/db/queries/rooms.rs @@ -80,7 +80,7 @@ impl Database { &self, user_id: UserId, ) -> Result> { - self.transaction(|tx| async move { + self.weak_transaction(|tx| async move { let pending_participant = room_participant::Entity::find() .filter( room_participant::Column::UserId