test: lift the shared sqlx test pool cap so concurrent tests cannot starve (#11855)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Ruben Fiszel
2026-10-17 22:58:56 +02:00
committed by GitHub
co-authored by Claude Opus 5.5
parent 5fc5327e60
commit 03b540979a
3 changed files with 27 additions and 18 deletions
+8 -1
View File
@@ -24,4 +24,11 @@ rustflags = [
]
[net]
git-fetch-with-cli = true
git-fetch-with-cli = true
[env]
# All `#[sqlx::test]` pools of a test binary share this many connections, and each keeps the
# ones it took until it ends: below 5 per test thread, concurrent tests can split them all and
# wait on each other until their acquire times out. 50 covers CI's `--test-threads=10`; a run
# with more threads over a binary of more than 10 tests needs 5 per thread.
SQLX_TEST_MAX_CONNECTIONS = "50"
+7 -7
View File
@@ -12610,7 +12610,7 @@ dependencies = [
[[package]]
name = "sqlx"
version = "0.8.6"
source = "git+https://github.com/windmill-labs/sqlx?rev=bc69ecc388ded2a5d770a83bf54803af24706057#bc69ecc388ded2a5d770a83bf54803af24706057"
source = "git+https://github.com/windmill-labs/sqlx?rev=cb0d1c3d481f993b763806c0d96e63e53b870a70#cb0d1c3d481f993b763806c0d96e63e53b870a70"
dependencies = [
"sqlx-core",
"sqlx-macros",
@@ -12622,7 +12622,7 @@ dependencies = [
[[package]]
name = "sqlx-core"
version = "0.8.6"
source = "git+https://github.com/windmill-labs/sqlx?rev=bc69ecc388ded2a5d770a83bf54803af24706057#bc69ecc388ded2a5d770a83bf54803af24706057"
source = "git+https://github.com/windmill-labs/sqlx?rev=cb0d1c3d481f993b763806c0d96e63e53b870a70#cb0d1c3d481f993b763806c0d96e63e53b870a70"
dependencies = [
"base64 0.22.1",
"bigdecimal",
@@ -12660,7 +12660,7 @@ dependencies = [
[[package]]
name = "sqlx-macros"
version = "0.8.6"
source = "git+https://github.com/windmill-labs/sqlx?rev=bc69ecc388ded2a5d770a83bf54803af24706057#bc69ecc388ded2a5d770a83bf54803af24706057"
source = "git+https://github.com/windmill-labs/sqlx?rev=cb0d1c3d481f993b763806c0d96e63e53b870a70#cb0d1c3d481f993b763806c0d96e63e53b870a70"
dependencies = [
"proc-macro2",
"quote",
@@ -12672,7 +12672,7 @@ dependencies = [
[[package]]
name = "sqlx-macros-core"
version = "0.8.6"
source = "git+https://github.com/windmill-labs/sqlx?rev=bc69ecc388ded2a5d770a83bf54803af24706057#bc69ecc388ded2a5d770a83bf54803af24706057"
source = "git+https://github.com/windmill-labs/sqlx?rev=cb0d1c3d481f993b763806c0d96e63e53b870a70#cb0d1c3d481f993b763806c0d96e63e53b870a70"
dependencies = [
"dotenvy",
"either",
@@ -12696,7 +12696,7 @@ dependencies = [
[[package]]
name = "sqlx-mysql"
version = "0.8.6"
source = "git+https://github.com/windmill-labs/sqlx?rev=bc69ecc388ded2a5d770a83bf54803af24706057#bc69ecc388ded2a5d770a83bf54803af24706057"
source = "git+https://github.com/windmill-labs/sqlx?rev=cb0d1c3d481f993b763806c0d96e63e53b870a70#cb0d1c3d481f993b763806c0d96e63e53b870a70"
dependencies = [
"atoi",
"base64 0.22.1",
@@ -12740,7 +12740,7 @@ dependencies = [
[[package]]
name = "sqlx-postgres"
version = "0.8.6"
source = "git+https://github.com/windmill-labs/sqlx?rev=bc69ecc388ded2a5d770a83bf54803af24706057#bc69ecc388ded2a5d770a83bf54803af24706057"
source = "git+https://github.com/windmill-labs/sqlx?rev=cb0d1c3d481f993b763806c0d96e63e53b870a70#cb0d1c3d481f993b763806c0d96e63e53b870a70"
dependencies = [
"atoi",
"base64 0.22.1",
@@ -12780,7 +12780,7 @@ dependencies = [
[[package]]
name = "sqlx-sqlite"
version = "0.8.6"
source = "git+https://github.com/windmill-labs/sqlx?rev=bc69ecc388ded2a5d770a83bf54803af24706057#bc69ecc388ded2a5d770a83bf54803af24706057"
source = "git+https://github.com/windmill-labs/sqlx?rev=cb0d1c3d481f993b763806c0d96e63e53b870a70#cb0d1c3d481f993b763806c0d96e63e53b870a70"
dependencies = [
"atoi",
"chrono",
+12 -10
View File
@@ -226,9 +226,11 @@ all_sqlx_features = ["all_languages", "enterprise", "enterprise_saml", "embeddin
"windmill-git-sync/all_sqlx_features"]
[patch.crates-io]
# v0.8.6 plus two changes, the fix below and a `#[sqlx::test]`-only one: each test database is
# cloned from a template migrated once per migration set instead of migrating it per test.
# The rev is tagged `windmill-0.8.6-test-template-bc69ecc` in the fork so it stays fetchable.
# v0.8.6 plus the fix below and two `#[sqlx::test]`-only changes: each test database is
# cloned from a template migrated once per migration set instead of migrating it per test, and
# `SQLX_TEST_MAX_CONNECTIONS` (set in .cargo/config.toml) lifts the cap on the connections all
# test pools share. The rev is tagged `windmill-0.8.6-test-pool-cap-cb0d1c3` in the fork so it
# stays fetchable.
# The fix: `Pool::begin` is not cancel-safe on Postgres. sqlx raises the
# transaction depth its rollback-on-drop guard keys on only *after* the BEGIN round trip, so
# a cancelled caller (a disconnecting API client, a `timeout`, an aborted task) leaves the
@@ -242,13 +244,13 @@ all_sqlx_features = ["all_languages", "enterprise", "enterprise_saml", "embeddin
# Changing any of this — a bump, a rebase of the fork, dropping these lines — still compiles
# clean, so run the guard that actually checks the behaviour is still there:
# cargo test -p windmill-common --test sqlx_begin_cancel_safe -- --ignored
sqlx = { git = "https://github.com/windmill-labs/sqlx", rev = "bc69ecc388ded2a5d770a83bf54803af24706057" }
sqlx-core = { git = "https://github.com/windmill-labs/sqlx", rev = "bc69ecc388ded2a5d770a83bf54803af24706057" }
sqlx-macros = { git = "https://github.com/windmill-labs/sqlx", rev = "bc69ecc388ded2a5d770a83bf54803af24706057" }
sqlx-macros-core = { git = "https://github.com/windmill-labs/sqlx", rev = "bc69ecc388ded2a5d770a83bf54803af24706057" }
sqlx-postgres = { git = "https://github.com/windmill-labs/sqlx", rev = "bc69ecc388ded2a5d770a83bf54803af24706057" }
sqlx-mysql = { git = "https://github.com/windmill-labs/sqlx", rev = "bc69ecc388ded2a5d770a83bf54803af24706057" }
sqlx-sqlite = { git = "https://github.com/windmill-labs/sqlx", rev = "bc69ecc388ded2a5d770a83bf54803af24706057" }
sqlx = { git = "https://github.com/windmill-labs/sqlx", rev = "cb0d1c3d481f993b763806c0d96e63e53b870a70" }
sqlx-core = { git = "https://github.com/windmill-labs/sqlx", rev = "cb0d1c3d481f993b763806c0d96e63e53b870a70" }
sqlx-macros = { git = "https://github.com/windmill-labs/sqlx", rev = "cb0d1c3d481f993b763806c0d96e63e53b870a70" }
sqlx-macros-core = { git = "https://github.com/windmill-labs/sqlx", rev = "cb0d1c3d481f993b763806c0d96e63e53b870a70" }
sqlx-postgres = { git = "https://github.com/windmill-labs/sqlx", rev = "cb0d1c3d481f993b763806c0d96e63e53b870a70" }
sqlx-mysql = { git = "https://github.com/windmill-labs/sqlx", rev = "cb0d1c3d481f993b763806c0d96e63e53b870a70" }
sqlx-sqlite = { git = "https://github.com/windmill-labs/sqlx", rev = "cb0d1c3d481f993b763806c0d96e63e53b870a70" }
object_store = { git = "https://github.com/apache/arrow-rs-object-store", rev = "36752c975d4f29e20b57c91f81a10872dcd48ae7" }
# Use tiberius main branch for libgssapi 0.8.1 fix (https://github.com/prisma/tiberius/issues/343)
tiberius = { git = "https://github.com/prisma/tiberius", rev = "59db57960a14b422fb3a1309aa4aa47880896ff8" }