The Linux MSAN CI configuration can configure, build, and install HRX, but installed tests are currently disabled because test execution fails before reaching meaningful HRX/IREE test
coverage.
Current CI workaround:
- MSAN remains in the Linux matrix.
- HRX_SANITIZER=msan
- HRX_ASSERTIONS=true
- run_tests=false
- Packaging disabled.
- This preserves build/install coverage while avoiding structurally invalid MSAN test execution.
Problem:
MSAN-instrumented test binaries run against uninstrumented host/runtime dependencies, especially the system C++ runtime and gtest startup path. This causes MemorySanitizer reports during
process/test framework initialization rather than in HRX/IREE code under test. A previous local probe still failed even when trying to make gtest more controlled, because uninstrumented
libstdc++ iostream/static initialization remains in the path.
Related fix already landed:
Host-side build generators such as iree-c-embed-data and iree-flatcc-cli are explicitly built with -fno-sanitize=memory under MSAN. That lets MSAN configure/build/install complete without
requiring an instrumented host C++ runtime for build-time tools.
Expected future state:
Either provide an MSAN-compatible/instrumented C++ runtime and test dependency stack in CI, or define a narrower supported MSAN execution mode. Once that exists, re-enable installed tests
for the MSAN matrix.
Repro shape:
HRX_SANITIZER=msan HRX_ASSERTIONS=ON HRX_PACKAGE=OFF
python3 build_tools/ci_core_linux.py build
HRX_SANITIZER=msan HRX_ASSERTIONS=ON HRX_PACKAGE=OFF
python3 build_tools/ci_core_linux.py test
The Linux MSAN CI configuration can configure, build, and install HRX, but installed tests are currently disabled because test execution fails before reaching meaningful HRX/IREE test
coverage.
Current CI workaround:
Problem:
MSAN-instrumented test binaries run against uninstrumented host/runtime dependencies, especially the system C++ runtime and gtest startup path. This causes MemorySanitizer reports during
process/test framework initialization rather than in HRX/IREE code under test. A previous local probe still failed even when trying to make gtest more controlled, because uninstrumented
libstdc++ iostream/static initialization remains in the path.
Related fix already landed:
Host-side build generators such as iree-c-embed-data and iree-flatcc-cli are explicitly built with -fno-sanitize=memory under MSAN. That lets MSAN configure/build/install complete without
requiring an instrumented host C++ runtime for build-time tools.
Expected future state:
Either provide an MSAN-compatible/instrumented C++ runtime and test dependency stack in CI, or define a narrower supported MSAN execution mode. Once that exists, re-enable installed tests
for the MSAN matrix.
Repro shape:
HRX_SANITIZER=msan HRX_ASSERTIONS=ON HRX_PACKAGE=OFF
python3 build_tools/ci_core_linux.py build
HRX_SANITIZER=msan HRX_ASSERTIONS=ON HRX_PACKAGE=OFF
python3 build_tools/ci_core_linux.py test