Skip to content

Windows: the cost cache reads tables through shared handles, so a pending delete is a quiet miss - #1809

Merged
ashhart merged 3 commits into
mainfrom
lead/windows-cost-cache
Nov 1, 2026
Merged

ashhart merged 3 commits into
mainfrom
lead/windows-cost-cache

Conversation

@ashhart

@ashhart ashhart commented Nov 1, 2026

Copy link
Copy Markdown
Owner

S150 (scodex): on Windows, cost_cache.loadAt opens a table while a writer replaces it; Windows returns NTSTATUS 0xc0000123 (FILE_DELETED), the standard library logs it as unexpected, and the test runner fails a test that logs an error, though loadAt returns a miss as designed (seen on a CI run for #1797).

  • Windows reads go through the existing shared Win32 shim with share flags that allow the replace, with bounded complete-envelope reads.
  • A real pending-delete fixture in cost_cache_windows_test.zig; non-Windows loading, the parser, the publisher and the original strict concurrent test are unchanged.

Fixes #1805.

🤖 Generated with Claude Code

@ashhart
ashhart force-pushed the lead/windows-cost-cache branch from b0bf9b3 to 251d8c0 Compare November 1, 2026 10:07
@ashhart
ashhart merged commit 5718638 into main Nov 1, 2026
12 of 13 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.

Windows: the cost-cache concurrency test fails when a reader meets a file being replaced

1 participant