From 5803456885a92ac36e5f9c0a0d33036a4d230944 Mon Sep 17 00:00:00 2001 From: Jakob Blomer Date: Wed, 8 Jul 2026 16:10:36 +0200 Subject: [PATCH 1/5] [ci] fix picking up ASAN configuration --- .../buildconfig/{alma10-minimal-asan.txt => alma10-asan.txt} | 0 .github/workflows/root-ci.yml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/root-ci-config/buildconfig/{alma10-minimal-asan.txt => alma10-asan.txt} (100%) diff --git a/.github/workflows/root-ci-config/buildconfig/alma10-minimal-asan.txt b/.github/workflows/root-ci-config/buildconfig/alma10-asan.txt similarity index 100% rename from .github/workflows/root-ci-config/buildconfig/alma10-minimal-asan.txt rename to .github/workflows/root-ci-config/buildconfig/alma10-asan.txt diff --git a/.github/workflows/root-ci.yml b/.github/workflows/root-ci.yml index 1239bd5cf6c69..1d075f839e38d 100644 --- a/.github/workflows/root-ci.yml +++ b/.github/workflows/root-ci.yml @@ -418,7 +418,7 @@ jobs: overrides: ["CMAKE_CXX_STANDARD=20"] # Asan build - image: alma10 - platform_config: alma10-minimal + platform_config: alma10-asan is_special: true property: "asan" overrides: ["ROOT_CTEST_CUSTOM_FLAGS=-E@\\(^tutorial-\\|cppinterop-CppInterOpTest\\|roottest-cling-specialobj-runf02$\\|roottest-root-collection-DeleteWarning$\\|roottest-root-io-evolution-fixarr2$\\|roottest-root-meta-rlibmap$\\|roottest-root-treeproxy-vectorint-vectorint$\\)"] From 4cb5d0035ec2bcab154319764464af9918163e50 Mon Sep 17 00:00:00 2001 From: Jakob Blomer Date: Mon, 29 Jun 2026 11:00:47 +0200 Subject: [PATCH 2/5] [ci] fix up asan build config --- .../workflows/root-ci-config/buildconfig/alma10-asan.txt | 7 +++---- .github/workflows/root-ci.yml | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/root-ci-config/buildconfig/alma10-asan.txt b/.github/workflows/root-ci-config/buildconfig/alma10-asan.txt index 769c7c1f6fe0f..dd02d820eb823 100644 --- a/.github/workflows/root-ci-config/buildconfig/alma10-asan.txt +++ b/.github/workflows/root-ci-config/buildconfig/alma10-asan.txt @@ -1,11 +1,10 @@ -CMAKE_BUILD_TYPE=Debug -CMAKE_CXX_FLAGS_DEBUG="-Og -g" +CMAKE_BUILD_TYPE=RelWithDebugInfo asan=ON -ccache=ON builtin_vdt=ON +ccache=ON fail-on-missing=ON minimal=ON roottest=ON testing=ON LSAN_OPTIONS=verbosity=1:log_threads=1 -ROOT_CTEST_CUSTOM_FLAGS="-E \(cppinterop-CppInterOpTest\|roottest-cling-specialobj-runf02$\|roottest-root-collection-DeleteWarning$\|roottest-root-io-evolution-fixarr2$\|roottest-root-meta-rlibmap$\|roottest-root-treeproxy-vectorint-vectorint$\)" +ROOT_CTEST_CUSTOM_FLAGS="-E \(cppinterop-CppInterOpTest\|gtest-core-metacling-TClingTest$\|roottest-cling-specialobj-runf02$\|roottest-root-collection-DeleteWarning$\|roottest-root-io-evolution-fixarr2$\|roottest-root-meta-rlibmap$\|roottest-root-tree-cloning-runtreeCloneTest2$\|roottest-root-treeproxy-vectorint-vectorint$\)" diff --git a/.github/workflows/root-ci.yml b/.github/workflows/root-ci.yml index 1d075f839e38d..4c10d7310ba9c 100644 --- a/.github/workflows/root-ci.yml +++ b/.github/workflows/root-ci.yml @@ -421,7 +421,7 @@ jobs: platform_config: alma10-asan is_special: true property: "asan" - overrides: ["ROOT_CTEST_CUSTOM_FLAGS=-E@\\(^tutorial-\\|cppinterop-CppInterOpTest\\|roottest-cling-specialobj-runf02$\\|roottest-root-collection-DeleteWarning$\\|roottest-root-io-evolution-fixarr2$\\|roottest-root-meta-rlibmap$\\|roottest-root-treeproxy-vectorint-vectorint$\\)"] + overrides: ["ROOT_CTEST_CUSTOM_FLAGS=-E@\\(^tutorial-\\|cppinterop-CppInterOpTest\\|gtest-core-metacling-TClingTest$\\|roottest-cling-specialobj-runf02$\\|roottest-root-collection-DeleteWarning$\\|roottest-root-io-evolution-fixarr2$\\|roottest-root-meta-rlibmap$\\|roottest-root-tree-cloning-runtreeCloneTest2$\\|roottest-root-treeproxy-vectorint-vectorint$\\)"] # Fedora Rawhide with Python freethreading+debug build - image: rawhide python_venv: "/py-venv-3.15td/ROOT-CI" From cad254c55d87f5d730b9ac0766da97c6bf5c6013 Mon Sep 17 00:00:00 2001 From: silverweed Date: Tue, 28 Jul 2026 09:14:29 +0200 Subject: [PATCH 3/5] Revert "[core] do not interrupt build when an asan error is found" This reverts commit d8695bed46d79d69025d8b369b8d4251fcae116b. --- core/sanitizer/SanitizerSetup.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/sanitizer/SanitizerSetup.cxx b/core/sanitizer/SanitizerSetup.cxx index 2e4b1340900dc..a638ccae054f5 100644 --- a/core/sanitizer/SanitizerSetup.cxx +++ b/core/sanitizer/SanitizerSetup.cxx @@ -31,8 +31,7 @@ const char* __asan_default_options() { ":detect_container_overflow=1" ":alloc_dealloc_mismatch=0" DETECT_LEAKS - ":verify_asan_link_order=0" - ":halt_on_error=0"; + ":verify_asan_link_order=0"; } /// Default options when leak sanitizer starts up in ROOT executables. From bc780f185d4c23400b5aae6668dc17e9a564852f Mon Sep 17 00:00:00 2001 From: silverweed Date: Tue, 28 Jul 2026 14:27:29 +0200 Subject: [PATCH 4/5] [CI] re-enable some tests in the asan build --- .github/workflows/root-ci-config/buildconfig/alma10-asan.txt | 2 +- .github/workflows/root-ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/root-ci-config/buildconfig/alma10-asan.txt b/.github/workflows/root-ci-config/buildconfig/alma10-asan.txt index dd02d820eb823..21da69ba58c7e 100644 --- a/.github/workflows/root-ci-config/buildconfig/alma10-asan.txt +++ b/.github/workflows/root-ci-config/buildconfig/alma10-asan.txt @@ -7,4 +7,4 @@ minimal=ON roottest=ON testing=ON LSAN_OPTIONS=verbosity=1:log_threads=1 -ROOT_CTEST_CUSTOM_FLAGS="-E \(cppinterop-CppInterOpTest\|gtest-core-metacling-TClingTest$\|roottest-cling-specialobj-runf02$\|roottest-root-collection-DeleteWarning$\|roottest-root-io-evolution-fixarr2$\|roottest-root-meta-rlibmap$\|roottest-root-tree-cloning-runtreeCloneTest2$\|roottest-root-treeproxy-vectorint-vectorint$\)" +ROOT_CTEST_CUSTOM_FLAGS="-E \(gtest-core-metacling-TClingTest$\|roottest-cling-specialobj-runf02$\|roottest-root-collection-DeleteWarning$\|roottest-root-io-evolution-fixarr2$\|roottest-root-meta-rlibmap$\|roottest-root-tree-cloning-runtreeCloneTest2$\|roottest-root-treeproxy-vectorint-vectorint$\)" diff --git a/.github/workflows/root-ci.yml b/.github/workflows/root-ci.yml index 4c10d7310ba9c..49cf09caa8c70 100644 --- a/.github/workflows/root-ci.yml +++ b/.github/workflows/root-ci.yml @@ -421,7 +421,7 @@ jobs: platform_config: alma10-asan is_special: true property: "asan" - overrides: ["ROOT_CTEST_CUSTOM_FLAGS=-E@\\(^tutorial-\\|cppinterop-CppInterOpTest\\|gtest-core-metacling-TClingTest$\\|roottest-cling-specialobj-runf02$\\|roottest-root-collection-DeleteWarning$\\|roottest-root-io-evolution-fixarr2$\\|roottest-root-meta-rlibmap$\\|roottest-root-tree-cloning-runtreeCloneTest2$\\|roottest-root-treeproxy-vectorint-vectorint$\\)"] + overrides: ["ROOT_CTEST_CUSTOM_FLAGS=-E@\\(^tutorial-\\|gtest-core-metacling-TClingTest$\\|roottest-cling-specialobj-runf02$\\|roottest-root-collection-DeleteWarning$\\|roottest-root-io-evolution-fixarr2$\\|roottest-root-meta-rlibmap$\\|roottest-root-tree-cloning-runtreeCloneTest2$\\|roottest-root-treeproxy-vectorint-vectorint$\\)"] # Fedora Rawhide with Python freethreading+debug build - image: rawhide python_venv: "/py-venv-3.15td/ROOT-CI" From fe70534e27ec65835698fd38e4625b1439b16425 Mon Sep 17 00:00:00 2001 From: silverweed Date: Thu, 30 Jul 2026 09:20:55 +0200 Subject: [PATCH 5/5] [CI] disable odr violation asan checks for now There are too many failing tests with it --- core/sanitizer/SanitizerSetup.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/sanitizer/SanitizerSetup.cxx b/core/sanitizer/SanitizerSetup.cxx index a638ccae054f5..e4d783ace554b 100644 --- a/core/sanitizer/SanitizerSetup.cxx +++ b/core/sanitizer/SanitizerSetup.cxx @@ -31,7 +31,8 @@ const char* __asan_default_options() { ":detect_container_overflow=1" ":alloc_dealloc_mismatch=0" DETECT_LEAKS - ":verify_asan_link_order=0"; + ":verify_asan_link_order=0" + ":detect_odr_violation=0"; } /// Default options when leak sanitizer starts up in ROOT executables.