diff --git a/openfut-utas-host/tests/economy_integration.rs b/openfut-utas-host/tests/economy_integration.rs index 11c2af1..3eec81c 100644 --- a/openfut-utas-host/tests/economy_integration.rs +++ b/openfut-utas-host/tests/economy_integration.rs @@ -21,13 +21,11 @@ use serde_json::{json, Value}; /// Boot a Core instance against `db_url`, serving on an ephemeral port. Returns /// the serve task handle and its base URL. async fn start_core(db_url: &str) -> (tokio::task::JoinHandle<()>, String) { - // Serialize Core access with a single pooled connection so this E2E+restart - // harness is deterministic. NOTE: even with the WAL-establish-once + - // busy_timeout fixes (core 75b1830), a multi-connection pool on a brand-new - // DB still intermittently surfaces a write "database error" under warm-up — - // a deeper sqlx/SQLite pool concurrency issue that is a documented remaining - // blocker for the Part-T concurrency proof, not exercised by this harness. - let pool = openfut_core::db::init_pool(db_url, 1) + // Multi-connection pool: the fresh-DB write-lock race is fixed in Core + // (WAL-establish-once + BEGIN IMMEDIATE write transactions + busy_timeout, + // core fbb54ea), proven by the concurrency reproduction (800/800 concurrent + // writes), so a real multi-connection pool is stable here. + let pool = openfut_core::db::init_pool(db_url, 5) .await .expect("core pool"); openfut_core::db::run_migrations(&pool)