Repository navigation
ci(release): add swap and a job cap to the Linux dist wheel builds - #1402
Merged
Merged
Conversation
Linux dist builds of the native crates lost their hosted runner with a shutdown signal while the largest single-unit crates compiled together. Add 16 GB of host swap, which the manylinux container shares, compile at most three crates at a time, and report sampled peak memory and swap use after the build. Other platforms, release-profile builds and the dist profile are unchanged.
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.
Why
Every Linux dist wheel build of the 0.208.0 release pull request (three of three across two Release Distributions runs, x86_64 and aarch64) lost its hosted runner with "The runner has received a shutdown signal", with no build error. Each died minutes into the stretch where the largest single-unit crates (
polyglot-sql,sqlbuild-analysis,sqlbuild-cli) compile at the same time. macOS and Windows pass, as do release-profile wheels. That pointed to the hosted Linux VM running out of memory.Changes
build-distributions.yml, Linux dist builds only:free -mbefore and after the build, sample used memory every 5 s, and report the peak RAM and swap use (also in the job summary).--jobs 3to the four Linux dist maturin builds, so at most three crates compile at a time.The dist profile, every budget, release-profile builds and the macOS and Windows jobs are unchanged.
Verification
free -mbefore swap (RAM / swap total)free -mafter swapaarch64 peaked above the runner's 19012 MiB of RAM plus built-in swap, which confirms memory exhaustion. For comparison, the 0.207.0 x86_64 job took 18m11s (extension step 14m21s) and the 0.206 one 24m16s (19m23s). The macos-arm64 job in the proof run was never picked up by a hosted runner (capacity); macOS is unchanged here.