Repository navigation
Handle empty code objects consistently across workloads - #2003
Merged
Merged
Conversation
jackf-beamcloud
approved these changes
Oct 14, 2026
jackf-beamcloud
left a comment
Contributor
There was a problem hiding this comment.
Looks right. The hash is the sha256 of an empty zip, so any object that matches it would extract to an empty workspace anyway. That makes creating the workspace locally safe for every stub type, and a missing object with any other hash still fails as before. Non-blocking: the doc comment on GetOrCreateEmptyStubObject still says only sandbox workers recognize the hash.
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.
Dockerfile and registry services can reuse the canonical empty object registered by a VM, which has no uploaded archive. The worker only handled that object locally for sandboxes and VMs, so services failed during mount setup with S3
NoSuchKey.Use the existing empty-workspace path whenever the object has the canonical empty hash. This is a one-line runtime change; missing nonempty objects still fail.
Validation: the expanded regression test fails for services before the fix and passes afterward. Mount/cache tests and abstraction common tests pass. The full worker suite has one unrelated macOS failure in
TestCheckpointHostProfileIgnoresWorkerRelease, which expects a Linux CPU profile.Summary by cubic
Fixes services that reference the canonical empty code object from failing during mount setup with S3
NoSuchKey. The worker previously applied the local empty-workspace path only to sandboxes and VMs, even though Dockerfile, registry, and other workloads share the same empty object, which has no uploaded archive.Written for commit 183a68b. Summary will update on new commits.