Skip to content

[CI] Enable ASAN build properly - #22943

Draft
silverweed wants to merge 9 commits into
root-project:masterfrom
silverweed:asan-rdf
Draft

[CI] Enable ASAN build properly#22943
silverweed wants to merge 9 commits into
root-project:masterfrom
silverweed:asan-rdf

Conversation

@silverweed

Copy link
Copy Markdown
Contributor

Based on #22726, with the following additions:

  • reverts d8695be since it's not needed anymore;
  • re-enables 3 tests that are now working with asan.

@silverweed silverweed self-assigned this Jul 28, 2026
@github-actions

github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown

Test Results

    23 files      23 suites   3d 17h 47m 35s ⏱️
 3 856 tests  3 856 ✅ 0 💤 0 ❌
78 543 runs  78 543 ✅ 0 💤 0 ❌

Results for commit 8d6fbb1.

♻️ This comment has been updated with latest results.

@silverweed
silverweed force-pushed the asan-rdf branch 3 times, most recently from fe70534 to bd3d738 Compare August 5, 2026 07:16
In ROOTTEST_ADD_TEST we have a piece of code that adds the Asan libraries
to LD_PRELOAD for python scripts, but it excludes a few special cases.

Among these there is driveTabCom.py, which is mentioned explicitly by
driveRedirect.py to have a similar functionality (that functionality
being driving the root.exe process through a pseudo-interactive tty
to test some stuff).

For reasons that are not entirely clear to me, these scripts don't want
the asan libraries in LD_PRELOAD. Possibly because, not having an
`import ROOT`, they don't benefit from the tweaks added by this PR:
root-project#11621
which prevents Asan libraries from leaking into the ROOT process.
This is just a guess.

This change fixes a problem with roottest-root-rint-Redirect, which
otherwise fails on Alma10 with:

ld.so: object '/usr/lib/gcc/x86_64-redhat-linux/14/libasan.so' from
LD_PRELOAD cannot be preloaded (file too short): ignored.

Notably, this failure doesn't happen on Archlinux. As far as I can tell,
the main difference is that on Alma, libasan.so is actually a linker
script redirecting to /usr/lib64/libasan.so.8.0.0, whereas in Arch the
preloaded library (/usr/lib/libasan.so in that case) is an actual
shared object.

To be ascertained whether this fix is the "proper" one, but it surely
is in line with the way we fixed driveTabCom.py, so if this is to be
revised, that one likely needs to be as well.
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