Skip to content

Commit 51cde76

Browse files
committed
[CI][Diag] Move dep-manifest dump to after pytest
Importing numpy before pytest registers the broken OpenBLAS atfork handler in this shell, then Kit's libomni.platforminfo fork() trips it and SIGSEGVs - exactly the bug isaac-sim#5642 targets. Surface the diagnostic AFTER pytest instead, with pytest's exit code preserved so the job still passes/fails based on real test outcomes.
1 parent 0d98bde commit 51cde76

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

.github/actions/run-tests/action.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,16 @@ runs:
228228
;;
229229
esac
230230
fi
231+
echo 'Starting pytest with path: $test_path'
232+
# Run pytest under a saved exit code so the dep-manifest diagnostic
233+
# below always emits, even on test failure. The diagnostic must run
234+
# AFTER pytest: importing numpy in this shell beforehand registers
235+
# numpy's vendored OpenBLAS pthread_atfork handler in the wrong
236+
# process, which trips Kit's libomni.platforminfo fork() and SIGSEGVs.
237+
set +e
238+
./isaaclab.sh -p -m pytest --ignore=tools/conftest.py --ignore=source/isaaclab/test/install_ci $test_path $pytest_options -v --junitxml=tests/$result_file
239+
PYTEST_EXIT=\$?
240+
set -e
231241
# Diagnostic: dump numpy/scipy/openblas state so we can verify the
232242
# numpy!=2.3.5 pin landed in IsaacLab's setup.py prevents the broken
233243
# vendored OpenBLAS (libscipy_openblas64_-fdde5778.so) from being
@@ -238,8 +248,7 @@ runs:
238248
./isaaclab.sh -p -m pip show numpy scipy 2>/dev/null | grep -E '^(Name|Version|Location):' || true
239249
./isaaclab.sh -p -c \"import numpy, scipy, os; print('numpy', numpy.__version__); print('scipy', scipy.__version__); [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
240250
echo '=== /Dep manifest ==='
241-
echo 'Starting pytest with path: $test_path'
242-
./isaaclab.sh -p -m pytest --ignore=tools/conftest.py --ignore=source/isaaclab/test/install_ci $test_path $pytest_options -v --junitxml=tests/$result_file
251+
exit \$PYTEST_EXIT
243252
"
244253
245254
# Stream container logs in background.

0 commit comments

Comments
 (0)