From 65372994d48e9cd4d75c43bc3c35c8db7e726f4d Mon Sep 17 00:00:00 2001 From: Pere Diaz Bou Date: Wed, 18 Jun 2025 17:00:37 +0200 Subject: [PATCH] op_transaction `end_read_tx` in case of `begin_write_tx` is busy In case of starting a write txn, we always start by starting a read txn. If we don't end_read_tx then it will never release locks. --- core/vdbe/execute.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/core/vdbe/execute.rs b/core/vdbe/execute.rs index b344e9126..737c3d00a 100644 --- a/core/vdbe/execute.rs +++ b/core/vdbe/execute.rs @@ -1709,6 +1709,7 @@ pub fn op_transaction( if updated && matches!(new_transaction_state, TransactionState::Write) { if let LimboResult::Busy = pager.begin_write_tx()? { + pager.end_read_tx()?; tracing::trace!("begin_write_tx busy"); return Ok(InsnFunctionStepResult::Busy); }