op_transaction: read tx must be ended in all cases if begin_write_tx fails

This commit is contained in:
Jussi Saurio
2025-07-30 13:47:52 +03:00
parent 9a63425b43
commit fd5e73f038

View File

@@ -2030,12 +2030,7 @@ pub fn op_transaction(
match pager.begin_write_tx()? {
IOResult::Done(r) => {
if let LimboResult::Busy = r {
if matches!(
current_state,
TransactionState::Read | TransactionState::PendingUpgrade
) {
pager.end_read_tx()?;
}
pager.end_read_tx()?;
conn.transaction_state.replace(TransactionState::None);
conn.auto_commit.replace(true);
return Ok(InsnFunctionStepResult::Busy);