Skip to content

test(core): cover WAL merge after concurrent index creation - #291

Merged
beinan merged 1 commit into
lance-format:mainfrom
beinan:codex/refresh-base-before-generic-merge
Oct 3, 2026
Merged

beinan merged 1 commit into
lance-format:mainfrom
beinan:codex/refresh-base-before-generic-merge

Conversation

@beinan

@beinan beinan commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

A long-lived GenericStore can retain an unindexed base manifest after another handle creates an ID index. A subsequent WAL merge must observe that index and apply updates without a CreateIndex conflict or duplicate rows.

Add a regression that opens two shard handles, creates the index through the first, and commits a prepared WAL update through the stale second handle. It checks that the WAL drains and exactly one updated row remains.

This PR changes tests only. Current main already refreshes the base unconditionally in StorageBase::commit_merge; the earlier production change in this PR is redundant and has been removed. Rebased onto ed26433.

Validation:

  • cargo fmt --all -- --check: passed.
  • git diff --check: passed.
  • CARGO_TARGET_DIR=/tmp/lc/target cargo test -p lance-context-core --lib -j 2 generic_store::tests:: -- --test-threads=2: 16 passed, including the new regression.
  • All 10 CI checks passed on 3bee038: Rust workspace and etcd HA tests, coverage, Clippy, formatting, spelling, Python lint/tests, and Linux x86_64/ARM64 plus macOS ARM64 wheel builds.

@beinan
beinan marked this pull request as ready for review October 1, 2026 14:05
@beinan beinan changed the title fix(core): refresh generic base before WAL merge test(core): cover WAL merge after concurrent index creation Oct 3, 2026
@beinan
beinan force-pushed the codex/refresh-base-before-generic-merge branch from 987cf78 to 3bee038 Compare October 3, 2026 05:27
@beinan
beinan merged commit 555ddee into lance-format:main Oct 3, 2026
10 checks passed
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