Repository navigation
fix(ios): INTERNAL builder trims its caches before disk refuses archive jobs - #24251
Conversation
…ve jobs The watch loop kept the pre-rename ~/cnx-ios-builds root, every failed build's .work (source and DerivedData) for 3 days, every xcframework key and an unbounded cargo target, so cmux23 fell to 39.9 GiB free and the admission hook refused every archive job (run 39731717858). - build folders: also capped to the newest 5 - below 60 GiB free and no runner job: remove the legacy root, .work, xcframeworks beyond the newest 3, the cargo target (SwiftPM stays) - admit: when only disk refuses an admitted archive job, trim once and re-check Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: |
|
Bead |
|
Found 11 test failures on Blacksmith runners: Failures
...and 1 more test failures. View all on Blacksmith
|
…ight-only cap - job_running matches Runner.Worker from any runner bin (self-updates use bin.<version>/) and manual testflight-build.sh / build-xcframework.sh runs - pressure trim renames victims into .trash before deleting, so a build that starts mid-delete gets a fresh directory; _prune empties leftover .trash - the newest-5 cap counts only *-testflight folders - admit logs a trim error and falls through to the plain refusal Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Subagent correctness review findings and resolution (fixed in the second commit):
|
|
Merging per the standing directive for this effort. Every red check here is unrelated to this PR, which only touches scripts/ci/ios_internal_builder.py, its tests and the design doc:
@lawrencecchen this only takes effect once or install Aziz's key (allowed by the fleet manifest) or apply the hq#1973 ACL so we can do it ourselves. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Summary
cmux23, the cmux INTERNAL iOS TestFlight builder, fell to 39.9 GiB free and its admission hook refused every archive job (run 39731717858, 2026-10-22). The watch loop never cleaned the pre-rename
~/cnx-ios-buildsroot, kept failed builds'.work(source and DerivedData) for 3 days, and never trimmed xcframework keys or the cargo target.Runner.Worker), the watch loop removes the legacy root,.work, xcframeworks beyond the newest 3 keys, and the cargo target. SwiftPM checkouts stay.admit: when disk is the only reason it would refuse an admitted archive job, it trims once and checks again (the hook runs before the job's steps, and the concurrency group allows one build).The mini runs its own copy of this script; after merge it must be copied per the doc's Operations section (
scp scripts/ci/ios_internal_builder.py cmux23:ios-internal-builder/).Testing
python3 -m unittest tests.test_ios_internal_builder: 35 tests pass, 5 new (newest-N build folders, pressure trim keeps SwiftPM and outputs, tick trims only when low and idle, admit trims and re-checks only for an admitted job).Changelog
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes the cmux INTERNAL iOS TestFlight builder (cmux23) so it frees its own caches before low disk makes its admission hook refuse archive jobs (cmux23 hit 39.9 GiB free on 2026-10-22 and refused every archive job).
~/cnx-ios-buildsroot, failed builds'.work, xcframeworks beyond the newest 3 keys, and the cargo target; SwiftPM checkouts stay. Trims run only while noRunner.Worker(from any runner bin),testflight-build.sh, orbuild-xcframework.shruns, and victims are renamed into.trashbefore deletion so a build that starts mid-delete gets a fresh directory.scp scripts/ci/ios_internal_builder.py cmux23:ios-internal-builder/).Written for commit c9d6eda. Summary will update on new commits.