Avatar for the Eventual-Inc user
Eventual-Inc
Daft
BlogDocsChangelog

Performance History

Latest Results

ci: revert TEMP Windows rust-tests enablement on PRs Windows verification on this PR is complete (run 25080590564): rust-tests-platform (Windows, false) passed in 40m. Restore the matrix exclude so PR runs don't pay the 50+ min Windows tax going forward — Windows continues to gate `main` only.
rohit/bugfix/test-local-full-ls-windows-uri
29 minutes ago
add from impl for enums
chris/taskevent-metadata
2 hours ago
fix(udf): resolve use_process=True subprocess deadlocks (#6793) ## Summary Fixes two distinct deadlocks in `UdfHandle`'s stdout plumbing (see #6762 for full root-cause analysis): 1. **Pipe-buffer overflow**: when a `use_process=True` UDF writes more than the OS pipe buffer (~64 KiB on Linux/macOS) to stderr per batch, the child blocks in `write()` before reaching `conn.send(_SUCCESS)` while the parent blocks in `recv()` without draining the pipe — classic two-channel ordering deadlock. Fixed by using `multiprocessing.connection.wait()` to multiplex between the control channel and the stdout pipe, draining lines into a per-handle buffer while waiting for the response. 2. **Divider-merge**: when a UDF's last stderr write lacks a trailing newline, those bytes and `_OUTPUT_DIVIDER` fuse into a single `readline()` result that never matches the exact-equality check in `trace_output()`, hanging the parent on an empty pipe forever. Fixed by prepending `\n` to the divider write so it always lands on its own line. Closes #6762. ## Commit structure (TDD) Three commits on the branch, each verified locally: 1. **`test(udf): add failing regression tests`** — introduces `pytest-timeout` dev dep and two integration tests that reproduce each deadlock. Tests hang and time out at this commit (60s total runtime). 2. **`fix(udf): prepend newline to output divider`** — one-line fix in `udf_worker.py`. Divider-merge test passes; pipe-buffer test still hangs. 3. **`fix(udf): drain stdout concurrently with recv`** — `mp.connection.wait`-based drain in `udf.py`. Both tests pass (~0.3s). ## Test plan - [x] `pytest tests/udf/test_use_process_deadlocks.py` passes (0.4s) on macOS, native runner - [x] `pytest tests/expressions/test_legacy_udf.py` — 165 passed, 0 regressions - [x] `pytest tests/udf/test_row_wise_udf.py -k use_process` — existing async use_process test still passes - [ ] CI verification ## Notes - This subsystem is POSIX-only in practice: `UdfHandle.__init__` uses a Unix-socket `Listener` with a `tempfile.NamedTemporaryFile` path that won't work on Windows. `mp.connection.wait()` is stdlib-blessed for this "wait on Connection + pipe fd concurrently" pattern on POSIX. A follow-up could add an explicit `NotImplementedError` for Windows users. - At commit #2 of this branch, running the pipe-buffer test first causes `pytest-timeout`'s SIGALRM to leave a dangling subprocess that affects the next test in the same pytest session. Cosmetic — HEAD has both fixes so the pathology can't reproduce. --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
main
2 hours ago

Latest Branches

CodSpeed Performance Gauge
0%
fix(test): update test_local_full_ls to expect canonical file:// URIs#6824
58 minutes ago
bdd66bb
rohit/bugfix/test-local-full-ls-windows-uri
CodSpeed Performance Gauge
0%
1 hour ago
e99fbd9
rchowell/paimon-integ
CodSpeed Performance Gauge
-10%
2 hours ago
ed74beb
sam/parquet-early-stats
© 2026 CodSpeed Technology
Home Terms Privacy Docs