Skip to content

ci: free disk before the LLVM cache restore in the linux test job#4988

Merged
lum1n0us merged 1 commit into
bytecodealliance:mainfrom
rebeckerspecialties:ci/free-disk-llvm-restore
Jul 8, 2026
Merged

ci: free disk before the LLVM cache restore in the linux test job#4988
lum1n0us merged 1 commit into
bytecodealliance:mainfrom
rebeckerspecialties:ci/free-disk-llvm-restore

Conversation

@matthargett

@matthargett matthargett commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary

The multi-tier-jit test job in compilation_on_android_ubuntu.yml restores the prebuilt LLVM libraries cache via actions/cache. On the standard runner that cache does not always fit alongside the preinstalled toolchains, and the restore can fail with "no space left on device", which then surfaces as ##[error]can not get prebuilt llvm libraries and fails the job.

Fix

Free ~20 GB of preinstalled toolchains this build never uses (dotnet, android, ghc, the CodeQL bundle, boost) immediately before the actions/cache restore — and only in the legs that actually download LLVM (gated on the same USE_LLVM == 'true' condition as the restore step). No test is added, removed, or skipped; the QA coverage is unchanged.

Verified on this PR's own CI: all nine test (ubuntu-22.04, multi-tier-jit, …) legs pass, including $THREADS_TEST_OPTIONS, the leg that had been failing.

Scope note — the containerized spec_test_on_qemu job

spec_test_on_qemu (nuttx) hits the same ENOSPC on its LLVM cache restore, but it cannot be fixed this way: it is a container: job (ghcr.io/no1wudi/nuttx/...), so its steps run inside a docker container and cannot free the host disk that the cache restore fills (a sudo rm there fails with sudo: not found, and host paths are not visible from the container). That surface is what #4983 addresses — moving to ubuntu-24.04 with runner-native LLVM 18 removes the large external LLVM cache entirely, so there is no multi-GB restore to overflow the disk. A larger runner (as noted for the Zephyr container job) is the other option.

Driver

Follows from #4983.

@matthargett matthargett force-pushed the ci/free-disk-llvm-restore branch from e9db6e7 to 003cc3a Compare July 8, 2026 00:14
The multi-tier-jit `test` job restores the prebuilt LLVM libraries cache
via actions/cache; on the standard runner that cache does not always fit
alongside the preinstalled toolchains, and the restore can fail with "no
space left on device", surfacing as "can not get prebuilt llvm libraries".

Free ~20 GB of preinstalled toolchains this build never uses (dotnet,
android, ghc, the CodeQL bundle, boost) before the restore, only in the
legs that actually download LLVM. No test is added, removed, or skipped.

The containerized spec_test_on_qemu job hits the same ENOSPC but cannot
be fixed this way: its steps run inside a docker container and cannot
free host disk. That surface is covered by bytecodealliance#4983, which removes the
external LLVM cache entirely.
@matthargett matthargett force-pushed the ci/free-disk-llvm-restore branch from 003cc3a to 26677e2 Compare July 8, 2026 00:27
@matthargett matthargett changed the title ci: free disk space before the LLVM cache restore in the disk-heavy jobs ci: free disk before the LLVM cache restore in the linux test job Jul 8, 2026
@lum1n0us lum1n0us merged commit a23ddd9 into bytecodealliance:main Jul 8, 2026
429 of 430 checks passed
@matthargett matthargett deleted the ci/free-disk-llvm-restore branch July 8, 2026 17:58
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.

2 participants