From 69633563439ca32240206a454e46cf13c634f468 Mon Sep 17 00:00:00 2001 From: jichuanh Date: Fri, 15 May 2026 05:30:46 +0000 Subject: [PATCH] [CI][Diag] Dump numpy/scipy/openblas state pre-pytest CI is hitting non-deterministic SIGSEGV crashes that look like the OpenBLAS atfork regression tracked at numpy#30092 and scipy#23686. The hypothesis is that the Isaac Sim base image rotated on 2026-05-12 picked up a scipy>=1.16.2 wheel whose bundled OpenBLAS registers a buggy atfork handler. Without knowing the actual numpy/scipy versions inside the pinned test image, we can't confirm the hypothesis or pick a remediation version. This adds a small diagnostic print right before pytest that emits: - pip show numpy scipy - numpy.__version__ / scipy.__version__ - the on-disk filename of the bundled libscipy_openblas*.so so the GitHub Actions log captures the actual deployed versions for every test job. The output is a few lines of plain text, no artifacts, no impact on test execution. --- .github/actions/run-tests/action.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/actions/run-tests/action.yml b/.github/actions/run-tests/action.yml index ab8a6c5e1caa..f545447570dd 100644 --- a/.github/actions/run-tests/action.yml +++ b/.github/actions/run-tests/action.yml @@ -218,6 +218,14 @@ runs: echo \"Installing extra pip packages: \${TEST_EXTRA_PIP_PACKAGES}\" ./isaaclab.sh -p -m pip install \${TEST_EXTRA_PIP_PACKAGES} fi + # Diagnostic: dump numpy/scipy/openblas state so we can correlate + # SIGSEGV crashes with the OpenBLAS atfork regression tracked at + # https://github.com/numpy/numpy/issues/30092 and + # https://github.com/scipy/scipy/issues/23686. + echo '=== Dep manifest (numpy/scipy/openblas) ===' + ./isaaclab.sh -p -m pip show numpy scipy 2>/dev/null | grep -E '^(Name|Version|Location):' || true + ./isaaclab.sh -p -c \"import numpy, scipy; print('numpy', numpy.__version__); print('scipy', scipy.__version__); import os; [print('bundled openblas:', os.path.join(d, f)) for d in [os.path.dirname(numpy.__file__) + '/../numpy.libs', os.path.dirname(scipy.__file__) + '/../scipy.libs'] if os.path.isdir(d) for f in os.listdir(d) if 'openblas' in f.lower()]\" 2>/dev/null || true + echo '=== /Dep manifest ===' echo 'Starting pytest with path: $test_path' ./isaaclab.sh -p -m pytest --ignore=tools/conftest.py --ignore=source/isaaclab/test/install_ci $test_path $pytest_options -v --junitxml=tests/$result_file "