deployvfs: fix source ordering and split layer hints into its own source#575
Merged
Conversation
Three fixes to the VFS blob resolution in deployvfs: 1. resolveManifestBlob / resolveConfigBlob: runfiles was tried last, after disk cache and remote CAS. Correct order is OCI layouts → runfiles → disk cache → remote CAS (Bazel caches always last). 2. layerFromCAS now only handles the Bazel remote cache. Layer hints (local paths from BUILD_WORKSPACE_DIRECTORY) are extracted into a new layerFromHints source that decides independently whether it is unconfigured, and is ordered just before disk cache and remote cache in layerBlob. 3. CAS reader is now only configured when at least one operation uses the "lazy" strategy (or unconditionally in the persistent worker, since a future request may need it). This ensures layerFromCAS correctly returns BlobSourceUnconfigured for non-lazy builds instead of silently skipping the source.
29f944d to
5b2673f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three fixes to the VFS blob resolution in deployvfs:
resolveManifestBlob / resolveConfigBlob: runfiles was tried last, after disk cache and remote CAS. Correct order is OCI layouts → runfiles → disk cache → remote CAS (Bazel caches always last).
layerFromCAS now only handles the Bazel remote cache. Layer hints (local paths from BUILD_WORKSPACE_DIRECTORY) are extracted into a new layerFromHints source that decides independently whether it is unconfigured, and is ordered just before disk cache and remote cache in layerBlob.
CAS reader is now only configured when at least one operation uses the "lazy" strategy (or unconditionally in the persistent worker, since a future request may need it). This ensures layerFromCAS correctly returns BlobSourceUnconfigured for non-lazy builds instead of silently skipping the source.