Skip to content

test(io): skip uring tests without workers - #8788

Merged
Xuanwo merged 2 commits into
mainfrom
gatekeeper/fix-8787-1
Aug 29, 2026
Merged

test(io): skip uring tests without workers#8788
Xuanwo merged 2 commits into
mainfrom
gatekeeper/fix-8787-1

Conversation

@lance-gatefixer

Copy link
Copy Markdown
Contributor

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=1
  • cargo test -p lance-io uring:: -- --test-threads=1
  • cargo fmt --all -- --check
  • cargo clippy --all --tests --benches -- -D warnings

@github-actions github-actions Bot added A-encoding Encoding, IO, file reader/writer chore labels Aug 26, 2026

@lance-gatekeeper lance-gatekeeper Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@lance-gatekeeper lance-gatekeeper Bot added the K-approved Latest Gatekeeper recommendation permits acceptance. label Aug 26, 2026
@lance-gatefixer

Copy link
Copy Markdown
Contributor Author

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.

@lance-gatekeeper lance-gatekeeper Bot removed the K-approved Latest Gatekeeper recommendation permits acceptance. label Aug 27, 2026

@lance-gatekeeper lance-gatekeeper Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 Xuanwo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The worker-availability guard matches the runner capability boundary while preserving production error behavior.

@Xuanwo
Xuanwo merged commit a434e0b into main Aug 29, 2026
35 checks passed
@Xuanwo
Xuanwo deleted the gatekeeper/fix-8787-1 branch August 29, 2026 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-encoding Encoding, IO, file reader/writer chore K-approved Latest Gatekeeper recommendation permits acceptance.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: uring tests fail when io_uring worker threads cannot be allocated

1 participant