From 86eb7b86762e657d15945acc107efbfb6350ea36 Mon Sep 17 00:00:00 2001 From: Cesar Rodas Date: Sun, 15 Jun 2025 23:37:51 -0300 Subject: [PATCH] Use `BEGIN IMMEDIATE` to avoid `SQLITE_BUSY_SNAPSHOT` error Context: https://stackoverflow.com/a/57717533 Error: https://github.com/cashubtc/cdk/actions/runs/15670089048/job/44140230127?pr=822#step:6:3586 --- crates/cdk-sqlite/src/mint/async_rusqlite.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/cdk-sqlite/src/mint/async_rusqlite.rs b/crates/cdk-sqlite/src/mint/async_rusqlite.rs index 27236c47..1d85d645 100644 --- a/crates/cdk-sqlite/src/mint/async_rusqlite.rs +++ b/crates/cdk-sqlite/src/mint/async_rusqlite.rs @@ -4,7 +4,7 @@ use std::sync::{mpsc as std_mpsc, Arc, Mutex}; use std::thread::spawn; use std::time::Instant; -use rusqlite::Connection; +use rusqlite::{Connection, TransactionBehavior}; use tokio::sync::{mpsc, oneshot}; use crate::common::SqliteConnectionManager; @@ -262,7 +262,7 @@ fn rusqlite_worker_manager( } }; - let tx = match conn.transaction() { + let tx = match conn.transaction_with_behavior(TransactionBehavior::Immediate) { Ok(tx) => tx, Err(err) => { tracing::error!("Failed to begin a transaction: {:?}", err);