Skip to content

Chemistry tests crash with SIGILL on GitHub-hosted runners due to -march=native + build cache #1277

@sbryngelson

Description

@sbryngelson

Problem

All 9 Chemistry tests intermittently crash with SIGILL (Illegal instruction) on the Github (ubuntu, mpi, no-debug, true) CI job.

Root cause

MFC compiles with -march=native (in CMakeLists.txt), which targets the exact CPU ISA of the build machine. GitHub-hosted runners have heterogeneous CPU architectures — a build cached on a runner with AVX-512 can be restored on a runner without those instructions, causing SIGILL at runtime.

This only affects GitHub-hosted runners (ubuntu-latest, macos-latest). Self-hosted HPC runners (Phoenix, Frontier) have consistent hardware so -march=native is safe there.

Fix

Include a hash of CPU model name and compiler versions in the actions/cache key so that builds are only restored on runners with matching hardware and toolchain. No changes to CMake or the build system — -march=native stays enabled everywhere.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions