Skip to content

ci(release): add swap and a job cap to the Linux dist wheel builds - #1402

Merged
kvlonge merged 1 commit into
mainfrom
ci/linux-dist-build-memory
Nov 10, 2026
Merged

kvlonge merged 1 commit into
mainfrom
ci/linux-dist-build-memory

Conversation

@kvlonge

@kvlonge kvlonge commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

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:

  • Add 16 GB of swap on the host before maturin-action; the manylinux container shares it.
  • Print free -m before and after the build, sample used memory every 5 s, and report the peak RAM and swap use (also in the job summary).
  • Pass --jobs 3 to 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

  • actionlint passes on the changed workflow; the release gate check passes.
  • Proof run: Release Distributions dispatched on this branch (run 42858615240). Both Linux wheels built, passed the wheel smoke tests and uploaded.
x86_64 aarch64
free -m before swap (RAM / swap total) 15983 / 3071 MiB 15941 / 3071 MiB
free -m after swap 15983 / 19455 MiB 15941 / 19455 MiB
Peak used RAM + swap 14275 + 1888 = 15923 MiB 15074 + 5950 = 20643 MiB
pswpout (pages) 483171 1513698
Extension step / cargo 18m05s / 16m45s 22m55s / 21m39s
Job 21m50s 27m05s

aarch64 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.

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.
@kvlonge kvlonge added the full-verify Run the full Verify matrix on this pull request label Nov 10, 2026
@kvlonge
kvlonge enabled auto-merge (squash) November 10, 2026 17:18
@kvlonge
kvlonge merged commit 5b4cbbf into main Nov 10, 2026
66 of 98 checks passed
@kvlonge
kvlonge deleted the ci/linux-dist-build-memory branch November 10, 2026 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-verify Run the full Verify matrix on this pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant