Skip to content

chore(vendor): track zvec 89ba922 (validation before merge) - #22

Merged
chinaux merged 1 commit into
mainfrom
chore/vendor-sync-89ba922
Oct 20, 2026
Merged

chinaux merged 1 commit into
mainfrom
chore/vendor-sync-89ba922

Conversation

@chinaux

@chinaux chinaux commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

Follow-up vendor bump: upstream moved three more commits ahead of c133f20 (merged in #21).

vendor/zvec c133f20 → 89ba922 (upstream main HEAD):

  • 1a57305 refactor: migrate index storage reads to MemoryBlock (#812) — large refactor across src/core/algorithm/* and src/db/index/*; no CMake changes.
  • f8cdeaf perf(flat): isolate query metadata from segment cache locking (#825) — 3 lines.
  • 89ba922 ci: strip debug symbols from Android prebuilt SDK libraries (#702) — upstream workflow only.

No C-API change: git diff --stat c133f20..89ba922 -- src/include/zvec/c_api.h src/include/zvec/export.h src/binding/c is empty, so no Rust adaptation is needed.

Why this PR is under validation before merging

The Nightly Coverage run dispatched on main at 6949471 (39360665059) failed on linux-x64 with:

[ERROR memory_forward_store.cc:467] failed to convert to table: Key error: No function registered with name: array_take
test test_collection_fetch_with_options ... FAILED
assertion failed: doc.has_field("id")   (zvec/tests/integration_test.rs:388)
test result: FAILED. 71 passed; 1 failed

That workflow does not build vendor/zvec; like fuzz.yml it runs git clone --depth 1 https://github.com/alibaba/zvec.git ../zvec (nightly-coverage.yml:56), so it built upstream main — i.e. the three commits in this PR — rather than the pinned c133f20.

Evidence that the pin itself is fine: PR #21's CI built vendor/zvec at c133f20 and test_collection_fetch_with_options passed (integration_test: 72 passed, 0 failed) on all five platforms. The last Nightly Coverage run that built an older upstream main (39105347636, Oct 18) was green with the same workflow flags, so the flags are not the difference — the upstream code is.

arrow::compute::Take is called from src/db/index/storage/memory_forward_store.cc:243, a file that is unchanged across c133f20..89ba922, and none of the three commits touch a CMakeLists.txt, so this looks like 1a57305 perturbing which Arrow compute kernel objects the linker pulls into libzvec_c_api ("No function registered" is Arrow's compute registry missing the array_take kernel).

This PR's CI is the experiment: it builds vendor/zvec at 89ba922 with our own flags on all five platforms. It will not be merged unless Check & Test is green; if integration_test fails the same way, the bump is held back and the regression belongs upstream.

Upstream moved three commits ahead of c133f20:

- 1a57305 refactor: migrate index storage reads to MemoryBlock (#812)
- f8cdeaf perf(flat): isolate query metadata from segment cache
  locking (#825)
- 89ba922 ci: strip debug symbols from Android prebuilt SDK libraries
  (#702)

No C-API change: c_api.h, export.h and src/binding/c/ are identical at
both revisions, so no Rust adaptation is needed.

Opened to validate the bump before merging it. The Nightly Coverage
workflow does not build vendor/zvec; it clones upstream main unpinned,
and its run on main failed test_collection_fetch_with_options with
Arrow reporting "No function registered with name: array_take" from
memory_forward_store.cc -- a file unchanged across this range, in a
range where no CMakeLists.txt changed. This PR's matrix builds the
pinned revision with our own flags on all five platforms and decides
whether the bump is safe to merge.
@chinaux
chinaux merged commit 7eb8afb into main Oct 20, 2026
17 checks passed
@chinaux
chinaux deleted the chore/vendor-sync-89ba922 branch October 20, 2026 08:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant