fix(tests): prevent behave-parallel multiprocessing deadlock on btrfs/overlayfs #9826

Merged
HAL9000 merged 2 commits from fix/nox-parallel-hang-btrfs into master 2026-04-17 07:31:00 +00:00

2 Commits

Author SHA1 Message Date
HAL9000 449c33b752 style(tests): apply ruff format to run_behave_parallel.py
CI / lint (pull_request) Successful in 19s
CI / quality (pull_request) Successful in 20s
CI / security (pull_request) Successful in 43s
CI / typecheck (pull_request) Successful in 53s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 23s
CI / push-validation (pull_request) Successful in 20s
CI / e2e_tests (pull_request) Successful in 3m43s
CI / unit_tests (pull_request) Successful in 7m32s
CI / docker (pull_request) Successful in 13s
CI / integration_tests (pull_request) Successful in 7m35s
CI / coverage (pull_request) Successful in 13m33s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 27s
CI / typecheck (push) Successful in 1m19s
CI / quality (push) Successful in 29s
CI / security (push) Successful in 1m25s
CI / build (push) Successful in 24s
CI / push-validation (push) Successful in 20s
CI / helm (push) Successful in 30s
CI / e2e_tests (push) Successful in 3m35s
CI / unit_tests (push) Successful in 6m6s
CI / integration_tests (push) Successful in 6m18s
CI / docker (push) Successful in 26s
CI / coverage (push) Successful in 12m18s
CI / status-check (push) Successful in 2s
Fix formatting of conditional expression in _is_btrfs_or_overlayfs()
that was flagged by ruff format --check in CI.
2026-04-17 07:16:05 +00:00
Test 4fc4d7863c fix(tests): prevent behave-parallel multiprocessing deadlock on btrfs/overlayfs
Detect btrfs and overlayfs filesystems and automatically fall back to sequential
mode to prevent deadlocks caused by SQLite WAL file locking and btrfs COW copy-up
locks when multiple forked workers try to access the same files simultaneously.

The fix adds a _is_btrfs_or_overlayfs() function that:
1. Attempts to detect the filesystem type using stat command
2. Falls back to reading /proc/mounts if stat fails
3. Returns True if the filesystem is btrfs or overlayfs

The sequential mode condition is updated to include this check, ensuring that
on affected filesystems, all features run in a single process instead of being
split across multiple forked workers.

ISSUES CLOSED: #9390
2026-04-17 07:16:05 +00:00