Skip to content

fix(wal): route payload fetches past unavailable voters - #870

Merged
beinan merged 1 commit into
lance-format:mainfrom
beinan:codex/wal-fetch-voter-failover-v2863
Nov 13, 2026
Merged

beinan merged 1 commit into
lance-format:mainfrom
beinan:codex/wal-fetch-voter-failover-v2863

Conversation

@beinan

@beinan beinan commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

A fresh or cached WAL client could fail a payload fetch with Connection refused when its selected voter was unavailable, even though another configured replica held the committed record. Allow read-only Fetch requests to use the existing transport-failure voter fallback, within the original request deadline and byte budget. Mutation replay and unknown-result handling are unchanged; a missing record remains a local read, not a quorum absence proof.

Refs #378.

Testing

  • Service-feature release Clippy passed.
  • All 44 client tests passed, including exact payload retrieval past unavailable initial/cached voters, the original deadline when all voters are unavailable, and existing mutation no-replay checks.
  • Workspace Rust tests: 1,341 passed. Python tests: 228 passed, 11 skipped, 1 expected failure. Rust formatting and workspace Clippy passed.
  • Python formatting, lint and Pyright passed with the versions used by GitHub CI. The original local script stopped because locked Ruff 0.14.13 rejected an unchanged base-file import; completing these checks with CI's Ruff 0.17.5 and Pyright 1.1.414 required no source change or repeated tests.
  • GitHub CI passed on commit 7092b01cd6bfffad239f6f3546f7d89ec491cda2, including WAL, HA, Lance, coverage, Python and wheel jobs.
  • Release builds of the original fault baseline plus this exact fix passed, with all three original service configurations validated. The earlier cloud fault remains failed. Its separate audit verified all 20,480 full values for the observed committed prefixes; negative unknown outcomes remain unresolved without producer fencing. No throughput improvement is claimed.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@beinan
beinan marked this pull request as ready for review November 13, 2026 06:45
@beinan
beinan merged commit d78abc2 into lance-format:main Nov 13, 2026
14 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.

2 participants