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
exercise repeated Blob V2 reads from an additional base across two fragments
assert the session registry resolves that base only once, protecting the dataset-scoped object store and its connection pool from per-call teardown
retain coverage for inline, packed, and dedicated blobs on non-default bases
Root cause
The object store registry intentionally keeps only weak references. Before the dataset-scoped additional-base cache added in #8530, the blob read context's per-call Arc<ObjectStore> was the only strong owner, so dropping each read also dropped the HTTP client and connection pool. Current main contains that ownership fix; this PR adds direct regression coverage for the reported Blob V2 path so later changes cannot silently restore per-read store construction.
Validation
cargo test -p lance test_take_blob_v2_from_non_default_base_inline_reuses_store
cargo test -p lance test_take_blob_v2_from_non_default_base
The reason will be displayed to describe this comment to others. Learn more.
✅ Gate recommendation: approve.
This adds a focused regression guard for Blob V2 reads from an additional base. The repeated-read registry assertion protects dataset-scoped store ownership, while the two-fragment fixture retains inline, packed, and dedicated coverage.
Blocked: The current-head Rust windows-build Check is failing on an unrelated nondeterministic ANN assertion, and GitHub will not permit its rerun while the parent workflow is still running.
Remote head 2d400da3671400dd4182802042b305fa9598ec98 contains the current main tip 3128c0024427cb5bf8c04d492893ae45e78b0511. In windows-build job 96799343464, the changed test_take_blob_v2_from_non_default_base_inline_reuses_store passed, while unchanged test_ann_with_deletion::data_storage_version_2_LanceFileVersion__Stable::stable_row_ids_2_true returned {0,1,2,3,6} instead of {0,1,2,3,4}; all four parameterizations pass locally and the repair diff does not touch scanner/index code. A targeted rerun was attempted, but GitHub reports that the job cannot be rerun while downstream linux-build keeps run 32491301654 active. Once that run completes, rerun failed job 96799343464; alternatively rerun the Rust workflow for this head.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Root cause
The object store registry intentionally keeps only weak references. Before the dataset-scoped additional-base cache added in #8530, the blob read context's per-call
Arc<ObjectStore>was the only strong owner, so dropping each read also dropped the HTTP client and connection pool. Currentmaincontains that ownership fix; this PR adds direct regression coverage for the reported Blob V2 path so later changes cannot silently restore per-read store construction.Validation
cargo test -p lance test_take_blob_v2_from_non_default_base_inline_reuses_storecargo test -p lance test_take_blob_v2_from_non_default_basecargo fmt --allcargo clippy --all --tests --benches -- -D warningsFixes #8692