Skip to content

Prevent stale frontend responses from replacing newer selections - #94

Merged
gordonmurray merged 1 commit into
lance-format:mainfrom
gordonmurray:fix/stale-response-race
Sep 1, 2026
Merged

Prevent stale frontend responses from replacing newer selections#94
gordonmurray merged 1 commit into
lance-format:mainfrom
gordonmurray:fix/stale-response-race

Conversation

@gordonmurray

Copy link
Copy Markdown
Collaborator

Closes #79.

Summary

  • assign monotonically increasing request IDs to dataset-list, metadata, and row requests
  • ignore successful or failed responses when a newer request has started
  • capture the selected dataset when metadata and row requests begin
  • invalidate in-flight metadata and row requests when the connection changes
  • add dependency-free Node tests that complete requests in reverse order
  • run the frontend syntax and race tests as a required CI job

Covered races

  • an older dataset-list response after a newer connection
  • rows from an older dataset after a newer dataset selection
  • rows from an older column selection on the same dataset
  • metadata from an older dataset
  • an older failed request after a newer request succeeds

Validation

  • node --check web/vanilla/app.js
  • node --test web/vanilla/tests/*.test.js — 5 passed
  • ../testing/run-tests.sh 0.36.0 — 65 passed
  • built the LanceDB 0.36.0 application image
  • smoke-tested /healthz, /datasets, /, and /app.js

@gordonmurray
gordonmurray merged commit 6d2dc6f into lance-format:main Sep 1, 2026
17 checks passed
@gordonmurray
gordonmurray deleted the fix/stale-response-race branch September 1, 2026 21:30
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.

Stale row responses can render over a newer one

1 participant