fix(cache): hold the Cargo maximum around every compiling gate command - #263
Open
ebursztein wants to merge 5 commits into
Open
ebursztein wants to merge 5 commits into
ebursztein wants to merge 5 commits into
Conversation
The shared Cargo target reached 237 GB against its 180 GiB maximum and a focus-test died with ENOSPC. Enforcement existed only as a prerequisite step of the host-build fragment and in front of bounded direct cargo, and only before compiling. Clippy in test-fast, the static coverage build, test-rust-affected, smoke, pack-initrd, bench-report and check-assets compiled into the shared target with no enforcement at all, and nothing enforced after any compile, so each worktree's salted units stood until some later enforcing path happened to run. The bound is now a resource of the command: every exclusive gate command whose plan claims workspace_binaries holds CargoCacheBound, which enforces before the first step and after the last, failed runs included. The fragment step and its cache_already_enforced opt-out are removed. The bounded wrapper also enforces after the command, reporting rather than refusing on that side so the command's own exit status stands.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #263 +/- ##
=====================================
Coverage 72.0% 72.0%
=====================================
Files 1032 1032
Lines 93151 93151
Branches 89173 89173
=====================================
+ Hits 67140 67146 +6
+ Misses 21169 21168 -1
+ Partials 4842 4837 -5
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
…nforcement # Conflicts: # build_system/tests/test_ownership.toml
…nforcement # Conflicts: # CHANGELOG.md
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.
The shared Cargo target reached 237 GB against its 180 GiB maximum and a
focus-test died with ENOSPC. Enforcement existed only as a prerequisite step
of the host-build fragment and in front of bounded direct cargo, and only
before compiling. Clippy in test-fast, the static coverage build,
test-rust-affected, smoke, pack-initrd, bench-report and check-assets
compiled into the shared target with no enforcement at all, and nothing
enforced after any compile, so each worktree's salted units stood until
some later enforcing path happened to run.
The bound is now a resource of the command: every exclusive gate command
whose plan claims workspace_binaries holds CargoCacheBound, which enforces
before the first step and after the last, failed runs included. The
fragment step and its cache_already_enforced opt-out are removed. The
bounded wrapper also enforces after the command, reporting rather than
refusing on that side so the command's own exit status stands.
Open question left for review: test-release-contracts is non-exclusive yet its contracts.audit.generated-settings step runs cargo into the shared target without the lock or the bound.
Tests: gate + cache + citadel, 5730 passed, 46 skipped; ruff and capsem-gate lint clean.
🤖 Generated with Claude Code