You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
DuckDB delta extension install races across parallel tests #6743
The DuckDB offline integration suite should run reliably with 8 pytest-xdist workers on a fresh runner.
Current Behavior
DuckDBDelta tests intermittently fail while several workers auto-install the delta extension into the shared ~/.duckdb/extensions directory. The losing worker reports:
_duckdb.IOException: IO Error: Could not set lock on file ".../delta.duckdb_extension.tmp-...duckdb_extension.info": Conflicting lock is held in .../python3.10 (PID ...)
I found the same failure in 3 unrelated Linux CI runs:
The failures affected 2 different DuckDBDelta tests, so this is not tied to one test's behavior.
Steps to reproduce
Start with an empty DuckDB extension cache on Linux.
Install the locked duckdb-tests Pixi environment.
Run pixi run -e duckdb-tests test, which executes the offline integration suite with pytest -n 8.
Several workers may observe that delta is not installed and attempt to install it into the same extension directory.
The race is intermittent. I could not reproduce the lock failure on Apple Silicon macOS, including 80 synchronized cold-cache extension loads, but the 3 GitHub-hosted Linux runs above provide independent positive reproductions.
I validated this against a separate cold cache. A fresh Ibis connection reported delta as installed but not loaded, then load_extension("delta") changed only the loaded state. This avoids Ibis's per-worker INSTALL path. The full 8-worker Feast suite then passed with 84 tests passed and 5 skipped.
Worker-specific extension directories would also avoid contention, but would download and install the same extension once per worker.
The 8 pytest workers can all decide the DuckDB delta extension is missing and race to install it into the same cache directory.
I'll add a small Pixi task that installs delta, then make the existing DuckDB integration test task depend on it. Pixi will complete that task before starting pytest, so workers only need to load the installed extension.
The only source change should be pyproject.toml. I'll verify the task graph, use a separate empty home directory to prove the extension is installed before pytest starts, and run the complete locked DuckDB integration task.
The DuckDB test task now depends on a serial delta extension install, so pytest workers start after the shared extension cache is populated.
Validation used an empty DuckDB cache. Pixi completed the install task before pytest, a fresh connection saw delta as installed and not loaded, and the complete 8-worker suite passed with 84 tests passed and 5 skipped.
Activity
larrysingleton007 commentedon Aug 16, 2026
Implementation plan
The 8 pytest workers can all decide the DuckDB
deltaextension is missing and race to install it into the same cache directory.I'll add a small Pixi task that installs
delta, then make the existing DuckDB integration test task depend on it. Pixi will complete that task before starting pytest, so workers only need to load the installed extension.The only source change should be
pyproject.toml. I'll verify the task graph, use a separate empty home directory to prove the extension is installed before pytest starts, and run the complete locked DuckDB integration task.larrysingleton007 commentedon Aug 16, 2026
Implementation is in #6744.
The DuckDB test task now depends on a serial
deltaextension install, so pytest workers start after the shared extension cache is populated.Validation used an empty DuckDB cache. Pixi completed the install task before pytest, a fresh connection saw
deltaas installed and not loaded, and the complete 8-worker suite passed with 84 tests passed and 5 skipped.fix: Preinstall DuckDB delta extension for tests
fix: Preinstall DuckDB delta extension for tests
chore(release): release 0.66.0
fix: Preinstall DuckDB delta extension for tests
chore(release): release 0.66.0