Skip to content

canary: measure checksum-only rebuilds at cmux scale (do not merge) - #14256

Closed
teamleaderleo wants to merge 3 commits into
mainfrom
canary/checksum-only-probe
Closed

teamleaderleo wants to merge 3 commits into
mainfrom
canary/checksum-only-probe

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Measurement canary for ci/seed-module-reemit. Do not merge; I'll close it once the admission job reports.

It builds with the fix (Swift Build FileSystemMode=checksum-only for the admission builds), then rebuilds three times in the same job:

  • null rebuild: what content hashing costs when nothing changed
  • every checkout file, directory and generated module map touched with the same bytes, which is what a fresh runner adopting a seed looks like; it also tries to touch Xcode SDK headers
  • one app source edit

The fingerprint changes with the mode, so this admission misses the seed and compiles cold under checksum-only.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Adds a measurement canary for the checksum-only seed fix. Do not merge; it will be closed once the admission job reports.

The admission build now runs Swift Build with FileSystemMode=checksum-only so llbuild compares inputs by content. Without it, an adopted seed at distance 0 still reran 94 SwiftDriver and 64 SwiftEmitModule tasks because 1,616 Xcode SDK and toolchain files carry different mtimes across Blacksmith images, and generated package module maps get rewritten with identical bytes on the first build after adoption. The mode is set only in the environment of these xcodebuild invocations and joins the seed fingerprint, since a database written in one mode reruns everything in the other.

  • Probes three rebuilds in the admission job: a null rebuild, every checkout file and module map touched with the same bytes plus SDK headers, and one app source edit.
  • Adds tests asserting every scheme builds in checksum-only mode and the fingerprint names the mode.

Written for commit 18b36db. Summary will update on new commits.

Review in cubic

@coderabbitai

coderabbitai Bot commented Sep 24, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

teamleaderleo and others added 3 commits September 24, 2026 12:43
Pins that every build-for-testing in compile-app-host-test-product.sh runs
with FileSystemMode=checksum-only and that the seed fingerprint changes with
the mode. Fails on this commit: FileSystemMode is unset and the fingerprint
is the device-agnostic one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…real changes

A seeded compile admission reran 94 SwiftDriver and 64 SwiftEmitModule tasks
even for a seed of its own base commit (run 36022099083, seed distance 0).
The XCBuild debugging trace names the inputs: 1,616 Xcode SDK and toolchain
files whose mtime differs between Blacksmith images, and the generated
package module maps Xcode rewrites with identical bytes on the first build
after adoption. Every third-party package re-emitted its module for them.

Build with Swift Build's FileSystemMode=checksum-only, set only in the
environment of these xcodebuild invocations, so llbuild compares contents.
A database written in one mode reruns every task in the other, so the mode
joins the seed fingerprint.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Canary done (run 36029379921): numbers are in #14262. Closing; do not merge.

@teamleaderleo
teamleaderleo deleted the canary/checksum-only-probe branch September 24, 2026 17:20
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.

1 participant