Skip to content

v0.2.8

Choose a tag to compare

@chraltro chraltro released this 28 Apr 11:32
· 83 commits to main since this release

Fix: runner cursor corruption on long-running scripts

The script runner polled duckdb_queries() on the same DuckDB connection the script thread was using. DuckDB connections are not thread-safe, so the concurrent probe corrupted the script's result cursor: chained db.execute(...).fetchone() returned None and unpacking blew up with "cannot unpack non-iterable NoneType object". Any db.execute(...) taking longer than the 5s poll interval was at risk.

Fix: run the probe on a separate connection via conn.cursor(), which gives an independent cursor over the same database.

Includes a deterministic regression test that monkeypatches the poll interval and runs a 1.5s script with 30 chained fetches.