Repository navigation
ci: build the test archives without debug info - #584
Merged
Merged
Conversation
The workspace archive was 2.63 GB (2,631,156,768 bytes), almost all of it DWARF: a driver test binary is about 465 MB with full debug info and about 9 MB without. Uploading it took 78 to 83 s and a test job's download took 33 to 363 s. With CARGO_PROFILE_TEST_DEBUG=0 the same archive is 187 MB. Line tables only (line-tables-only) would keep 860 MB. A panic's message and its file and line come from the panic location, which does not depend on debug info, so a failing test reports the same thing it reports now. The variable is set on the job so rust-cache includes it in its key; the dependencies it restores were built under the same setting.
This was referenced Sep 25, 2026
MarcusKainth
marked this pull request as ready for review
September 25, 2026 11:21
1 task done
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.
What this changes, and why
Most of a test job's setup time goes to downloading the workspace test archive, and
build-testsspends a minute and a half uploading it. The archive is 2.63 GB, and almost all of it is DWARF: a driver test binary is about 465 MB with full debug info and about 9 MB without. This PR builds the archive withCARGO_PROFILE_TEST_DEBUG=0. The variable is set on thebuild-testsjob, so rust-cache keys on it.A failing test reports the same thing it does now, because the panic message and its file and line come from the panic location, and debug info doesn't carry that. A
RUST_BACKTRACEbacktrace names functions but gives no lines.line-tables-onlywould keep backtrace lines, but it leaves the archive at 860 MB (measurement run 36121287631, below).Evidence
Measurement (throwaway PR #583, closed)
The same archive command under each setting, one runner per variant. The size is
ls -l tests.tar.zst:line-tables-onlyCARGO_PROFILE_TEST_DEBUG=0CARGO_PROFILE_TEST_DEBUG=0This PR's CI run 36122982586
Attempt 1 ran with a cold cache, because the new variable changes rust-cache's key. Attempt 2 reran
build-testsand its dependents against the cache attempt 1 saved:test-archivesartifactEvery group passed on both attempts, and
ci-passedsucceeded.A panic's location survives
debug = 0(scratch crate, local):Invariants
None. CI build settings only; no SQL and no computation path changes.
Spec impact
Checks
make gates: not run locally. CI's lint job ranmake lintand every test group passedWritten mostly by Claude Opus 5.5.