Skip to content

branch-4.2: [chore](build) Update lance-c to the latest upstream main revision #69332 - #69335

Merged
yiguolei merged 1 commit into
apache:branch-4.2from
Gabriel39:dev/pick-69332-4.2
Oct 21, 2026
Merged

yiguolei merged 1 commit into
apache:branch-4.2from
Gabriel39:dev/pick-69332-4.2

Conversation

@Gabriel39

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Backport #69332 to branch-4.2 (source commit eeb54b230ddf7a7a5a06cbaab1bdbd6796d8ff22).

Pin lance-c to 4fafcd64525b274b113208390bbcca86bbbc093b and update the archive checksum. This includes the upstream fix for cold-session vector prewarm when an index name matches another schema column, plus the row-address allowlist/blocklist prefilter APIs.

Refresh the existing Foyer patch's base revision and one C++ test context. Its actual added/deleted code is unchanged. The target branch's only cherry-pick conflict was the previous revision's descriptive comment.

Validation

  • Passed bash thirdparty/test/lance-prefilter-patch-test.sh thirdparty/src on this branch: platform definitions, fresh extraction, idempotence, re-extraction, existing markers, stale-cache invalidation, and patch-failure handling.
  • Verified the pinned archive checksum through the downloader.
  • Passed shell syntax checks and git diff --cached --check.
  • Confirmed the patch payload is unchanged and the resulting patch matches [chore](build) Update lance-c to the latest upstream main revision #69332 exactly.
  • Full Doris build and runtime regressions were not run locally; requested through run buildall.

Release note

Fix Lance index prewarm failures when a vector index name matches a different schema column.

Check List (For Author)

  • Test: dependency patch harness and manual checks above.
  • Behavior changed: Yes, includes the upstream prewarm fix and new prefilter APIs.
  • Does this need documentation: No.

Backport apache#69332. Pin lance-c to 4fafcd64525b274b113208390bbcca86bbbc093b
and refresh the archive checksum and Foyer patch context.

Includes the upstream vector index/column-name collision prewarm fix and
row-address prefilter APIs. The Foyer patch payload is unchanged.

Validation: branch-local dependency patch harness, archive checksum,
shell syntax and diff checks passed. Full build/runtime tests remain for CI.

(cherry picked from commit eeb54b2)
@Gabriel39
Gabriel39 requested a review from yiguolei as a code owner October 20, 2026 08:48
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@Gabriel39

Copy link
Copy Markdown
Contributor Author

run buildall

@Gabriel39

Copy link
Copy Markdown
Contributor Author

/review

@github-actions github-actions 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.

No actionable findings at head 051ef1d41272eba0d84e0008bb20fd588afad62e. Reviewed both changed files and the two imported lance-c commits, including the retained Foyer integration and Doris consumers. The review converged in one round: all three assigned reviewers returned NO_NEW_VALUABLE_FINDINGS, and every risk was dismissed with source evidence. There were no existing inline findings to carry forward and no additional user focus was supplied.

Independent static checks confirmed that the downloaded archive MD5 is 65e924fb62137c5dd4d58af3fb33923a, its root matches the configured source directory, and the complete Foyer patch applies with zero fuzz to a disposable review copy. Its added/deleted payload is unchanged. The upstream manifest, lockfile, Lance SDK revision, Rust requirements and native build dependencies did not change.

Critical checkpoint conclusions:

  1. Goal and proof: the pin includes metadata-based cold-session vector-prewarm resolution and additive row-list APIs; focused upstream test sources cover the concrete collision and basic scan/search semantics. Runtime behavior was not executed here.
  2. Scope: the two-file pin/checksum and patch-context refresh is focused; no unrelated implementation payload changed.
  3. Concurrency: segment opening and warming remain concurrent within try_join_all, with propagated errors and owned pending futures; dataset locks are released before I/O. Scheduling/cancellation tests use deterministic gates.
  4. Lifecycle/static initialization: one snapshot Arc retains its session; row-list buffers are copied and execution owns its masks. No new thread, ownership cycle or cross-translation-unit initializer was introduced.
  5. Configuration: no configuration was added or changed; dynamic-update requirements do not arise.
  6. Compatibility: existing C/C++ signatures and exposed layouts remain unchanged, new APIs are additive, matching headers/static archive are installed together, and no persisted format changed.
  7. Thrift/protobuf: untouched; no field-ID, enum or release-branch compatibility change.
  8. Parallel paths: reviewed ordinary/prepared Match/Phrase, indexed/flat nearest, plain scans/take shortcuts and scalar-segment exclusion. Current Doris callers never set the new row lists or call prewarm, so absent optional masks preserve their paths.
  9. Special conditions: index-name collision resolution uses the indexed field path and segment UUID; scalar/FTS fallback retains SDK validation, including aggregate FTS residency checks. Conflicting scalar-segment/list masks fail explicitly.
  10. Test coverage: inspected multi-fragment stable-ID list/filter/search cases, invalid/empty/replacement/lifecycle inputs, shared-session cold prewarm and concurrent scheduling/cancellation tests. See the execution and combination limits below.
  11. Test results: no expected-output files changed; upstream assertions were inspected, not regenerated or executed.
  12. Observability: existing FFI errors, scan statistics and session/cache metrics remain available; no actionable new observability gap was identified.
  13. Transactions/persistence/failover: no Doris transaction, EditLog or persistence logic changed; existing snapshot selection remains intact.
  14. Writes/atomicity/crash behavior: imported changes affect reads/prewarm, not commit/recovery paths; the retained Foyer implementation is unchanged.
  15. FE-BE variables: none added; no scattered sending-point update is required.
  16. Performance: existing callers add only constant optional-state checks, and vector prewarm does not serialize segment I/O. No actionable performance regression was found.
  17. Other/core invariants: input failures propagate through existing FFI panic/error guards; no changed Doris visible-version, MoW delete-bitmap or memory-accounting invariant was identified.

Validation limits: this was a static review. No builds, tests, patch harness, runtime, remote-store or platform execution was performed. The new lance-c integration tests do not directly exercise prepared Phrase, Substrait plus row lists, indexed nearest, or nonstable-ID combinations; their binding/SDK paths were traced without finding a concrete failure. These execution/test-coverage limits remain; no unresolved source-level candidate or uncovered changed path remains.

Review converged after 1 round(s).

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.39% (34416/45051)
Line Coverage 61.23% (388752/634890)
Region Coverage 58.15% (328082/564208)
Branch Coverage 59.09% (151164/255835)

@yiguolei
yiguolei merged commit 655836b into apache:branch-4.2 Oct 21, 2026
36 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

PR approved by anyone and no changes requested.

@github-actions github-actions Bot added the approved Indicates a PR has been approved by one committer. label Oct 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR approved by at least one committer and no changes requested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants