Skip to content

ci(msan): repin Dockerfile.msan to clang-21 (apt.llvm.org rotated noble-22 out) (#2123) - #2124

Open
DeusData wants to merge 1 commit into
mainfrom
ci/msan-clang-repin
Open

ci(msan): repin Dockerfile.msan to clang-21 (apt.llvm.org rotated noble-22 out) (#2123)#2124
DeusData wants to merge 1 commit into
mainfrom
ci/msan-clang-repin

Conversation

@DeusData

@DeusData DeusData commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Summary

test-msan is red repo-wide (#2123): the Dockerfile.msan image build could no
longer install clang-22 from apt.llvm.org's noble-22 channel — E: Unable to locate package clang-22 / libclang-rt-22-dev / llvm-22 after all 5 apt retries —
so the image never built and the required test-msan check could not go green on
any PR.

apt.llvm.org keeps only the last few majors for noble and rotates newer ones in
and out; the -22 package index was empty when CI fetched it (the channel has
since flapped back, confirming the transience). Rather than stay on that volatile
channel, this repins the MSan image to clang-21 — the highest
well-established stable noble channel apt.llvm.org currently serves, verified
installable on both amd64 and arm64.

Changes (test-infrastructure/Dockerfile.msan only)

  • apt source noble-22noble-21; packages clang-22 libclang-rt-22-dev llvm-22clang-21 libclang-rt-21-dev llvm-21; the clang/clang++ symlinks
  • MSan runtimes clone llvmorg-22.1.0llvmorg-21.1.8 (matches the apt clang
    21.1.8; the libc++/libc++abi/libunwind build must sit at the compiler's major)
  • MSAN_SYMBOLIZER_PATH /usr/lib/llvm-22/usr/lib/llvm-21

docker-compose.yml (test-msan service) and scripts/msan.sh reference the
version-agnostic clang/clang++ symlinks, so they need no change. The clang-22
pins in _test.yml (ASan lane) and _lint.yml are on separate GitHub-hosted
checks that install clang-22 directly and are unaffected by #2123 — left
untouched to keep this PR scoped to the failing lane.

Verification (local, Colima)

  • docker compose -f test-infrastructure/docker-compose.yml build test-msan
    builds clean end-to-end: clang-21 (21.1.8) installs from noble-21, the
    llvmorg-21.1.8 libc++/libc++abi/libunwind MSan runtimes build (all 1848
    targets) and the zlib MSan build succeed, image exported.
  • A sample compiled against the MSan-instrumented libc++ in /opt/msan links
    and runs clean under MSan.

Infra only; no product code change.

Fixes #2123

…tated noble-22 out) (#2123)

The test-msan lane was red repo-wide: the Dockerfile.msan image build could
no longer install clang-22 from apt.llvm.org's noble-22 channel, failing with
"E: Unable to locate package clang-22 / libclang-rt-22-dev / llvm-22" after
the 5 apt retries, so the image never built and every PR's required test-msan
check could not go green (#2123).

apt.llvm.org keeps only the last few majors for noble and rotates newer ones
in and out; the -22 channel's package index was empty when CI fetched it (the
channel has since flapped back, confirming the transience). Rather than stay on
that volatile channel, repin to clang-21 - the highest well-established stable
noble channel apt.llvm.org currently serves (verified installable on both
amd64 and arm64):

  - apt source noble-22 -> noble-21, clang-22/libclang-rt-22-dev/llvm-22 ->
    clang-21/libclang-rt-21-dev/llvm-21, and the clang/clang++ symlinks
  - MSan runtimes clone llvmorg-22.1.0 -> llvmorg-21.1.8 (matches the apt
    clang 21.1.8, keeping the libc++/libc++abi/libunwind build at the
    compiler's major, as the layer requires)
  - MSAN_SYMBOLIZER_PATH /usr/lib/llvm-22 -> /usr/lib/llvm-21

Verified in an ubuntu:noble container that clang-21/libclang-rt-21-dev/llvm-21
install cleanly, the clang/clang++ symlinks resolve, libclang_rt.msan-*.a and
llvm-symbolizer are present, and the full image builds via Colima.

Infra only; the MSan lane's other files (docker-compose.yml, scripts/msan.sh)
use the version-agnostic clang/clang++ symlinks and need no change.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
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.

CI: test-msan lane broken repo-wide — Dockerfile.msan can't install clang-22 from apt.llvm.org

1 participant