Skip to content

[cppjit] Install valgrind from conda-forge on the valgrind cells - #101

Merged
vgvassilev merged 1 commit into
mainfrom
conda-valgrind
Aug 20, 2026
Merged

vgvassilev merged 1 commit into
mainfrom
conda-valgrind

Conversation

@aaronj0

@aaronj0 aaronj0 commented Aug 19, 2026 •

Copy link
Copy Markdown
Collaborator

ARM valgrind nightly failures in cppjit were caused by a bug in valgrind. They are deterministic: the same "Unrecognised instruction at 0x35b8702c" on every nightly run. The instruction is 0x38BFC108 = LDAPRB, an ARMv8.3 FEAT_LRCPC load-acquire byte, i.e. an atomic acquire load. The JIT emits it because the arm runner's CPU supports LRCPC, but Ubuntu 24.04's valgrind 3.22.0 can't decode it, so valgrind raises SIGILL and kills pytest mid-suite. Memcheck itself reports 0 errors.

Bug: https://bugs.kde.org/show_bug.cgi?id=476465
Fix: https://sourceware.org/git/?p=valgrind.git;a=commit;h=41e2f95cf129191555e0048ccbbb392ee0fb155e

The valgrind release carrying the fix is not published for the Ubuntu version on the CI runners, so
this installs valgrind from conda-forge, which packages latest valgrind for both linux-64 and
linux-aarch64. I've verified this works on compiler-research/cppjit#29: both cells install valgrind 3.27.1 and pass on both architectures, with the previously-gated concurrency tests re-enabled on arm.

@aaronj0

aaronj0 commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

This works perfectly. We no longer require suppressing any cppjit tests with vg + arm

@vgvassilev

Copy link
Copy Markdown
Contributor

Can you write in the commit log why this change is needed?

@aaronj0

aaronj0 commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

Can you write in the commit log why this change is needed?

I can paste it in the extended commit description when performing the squash and merge. I added it to the PR description for now

@vgvassilev vgvassilev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@vgvassilev
vgvassilev merged commit 27e46bd into main Aug 20, 2026
24 of 26 checks passed
@vgvassilev
vgvassilev deleted the conda-valgrind branch August 20, 2026 13:51
@vgvassilev

Copy link
Copy Markdown
Contributor

Let's hope this does not break other downstream clients.

@aaronj0

aaronj0 commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

Let's hope this does not break other downstream clients.

This only effects the images used by cppjit's CI. I have a follow up that updates CppInterOp's CI to cppjit dropping all the last traces from cppyy, and at that point we probably need to vendor the same valgrind version.

I will open the ci-workflows patches once I have the wheels building (compiler-research/cppjit#22)

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