test(io): skip uring tests without workers - #8788
Conversation
There was a problem hiding this comment.
✅ Gate recommendation: approve.
The shared-pool guard handles the runner capability boundary without weakening production error behavior or masking failures when a worker is available. The regular file-scheme control remains active when io_uring is unavailable.
|
Blocked: PR #8788 at remote head 759e8bc remains blocked by the unrelated failed Python Linux 3.14 x86_64 check. The current check at https://github.com/lance-format/lance/actions/runs/32975377537/job/98200586624 reports test_torch_index_with_nans[Legacy] failing with StopIteration at lance/vector.py:164 after randomly selecting one centroid; the V3 case and 1,379 other tests passed. I fetched current main e49a421 and verified it is an ancestor of this head, re-read the live checks and log, and confirmed the PR changes only rust/lance-io/src/uring/tests.rs while the failing Python paths are identical to main, so no scoped repair is justified. The smallest action is to rerun the failed Python Linux 3.14 x86_64 check; alternatively, fix the inherited random NaN-centroid sampling behavior separately and then rerun CI. |
There was a problem hiding this comment.
✅ Gate recommendation: approve.
The merge from main preserves the reviewed patch unchanged. The shared-pool guard still skips only io_uring-dependent tests when initialization yields no worker, while leaving production error behavior and the regular file-scheme control intact.
Xuanwo
left a comment
There was a problem hiding this comment.
The worker-availability guard matches the runner capability boundary while preserving production error behavior.
Fixes #8787.
The uring test module assumed that its process-wide worker pool always contained a usable worker. Since #8725 correctly reports worker initialization failures, resource-constrained runners reached that error during reads and failed the test process under nextest fail-fast.
This change gates the io_uring-dependent cases on the shared worker pool and returns cleanly when no worker initialized. The regular
file://control test remains active, and production io_uring error behavior is unchanged.Validation:
LANCE_URING_THREAD_COUNT=0 cargo test -p lance-io uring::tests:: -- --test-threads=1cargo test -p lance-io uring:: -- --test-threads=1cargo fmt --all -- --checkcargo clippy --all --tests --benches -- -D warnings