Skip to content

Fix cache publication errors without accepting incomplete entries - #5

Open
morluto wants to merge 1 commit into
deepseek-ai:mainfrom
morluto:fix/cache-publication-errors
Open

morluto wants to merge 1 commit into
deepseek-ai:mainfrom
morluto:fix/cache-publication-errors

Conversation

@morluto

@morluto morluto commented Sep 10, 2026

Copy link
Copy Markdown

A failed cache-publication rename could discard a completed build and return an incomplete or nonexistent destination as a cache hit.

Check the destination's .committed marker before accepting the failed rename. If the marker is absent or cannot be inspected, throw filesystem_error with the original rename error and both paths. Keep the entry uncommitted so its temporary build remains available for retry and is cleaned up on destruction. Existing incomplete destinations are left untouched after a failed rename.

Adds CPU regressions for normal publication, an overlapping committed winner, incomplete destinations, permission failures, and retries. Adds a CUDA regression for a failed publication followed by successful compilation and kernel launch after the test removes its own incomplete fixture.

Validation:

  • All 5 CPU scenarios pass. On the base revision, incomplete destinations, rename permission failures, and marker-inspection permission failures reproduce false success; normal publication and overlapping-winner controls pass.
  • CUDA validation passes on an RTX 3060, including the new publication-failure regression and existing same-key and mixed-key eight-process publication tests. The local harness excludes the unsupported TMA test and its expected artifact; that harness adjustment is not part of this PR.
  • A combined check with the symlink-cleanup fix preserves outside files when a failed publication destroys its temporary entry.
  • Independent diff review reports no actionable findings.

Fixes #3.

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.

Disk cache commit reports success after unsuccessful publication

1 participant