This issue is a result of a Codex global repository scan.
Several toolchain wrapper scripts pipe the installer into tee compile.log without enabling pipefail or returning the installer's ${PIPESTATUS[0]}. In Bash, the pipeline exit status is the status of tee, so CI/users can see a successful wrapper exit even when install_abacus_toolchain_new.sh failed.
Example GNU wrapper:
|
${DRY_RUN_MODE:+$([ "$DRY_RUN_MODE" = "yes" ] && echo "--dry-run")} \ |
|
${PACK_RUN_MODE:+$([ "$PACK_RUN_MODE" = "yes" ] && echo "--pack-run")} \ |
|
${ENABLE_CUDA:+--enable-cuda} \ |
|
${GPU_VERSION:+--gpu-ver="$GPU_VERSION"} \ |
|
"$@" \ |
|
| tee compile.log |
Example Intel wrapper:
|
${DRY_RUN_MODE:+$([ "$DRY_RUN_MODE" = "yes" ] && echo "--dry-run")} \ |
|
${PACK_RUN_MODE:+$([ "$PACK_RUN_MODE" = "yes" ] && echo "--pack-run")} \ |
|
${ENABLE_CUDA:+--enable-cuda} \ |
|
${GPU_VERSION:+--gpu-ver="$GPU_VERSION"} \ |
|
"$@" \ |
|
| tee compile.log |
The same pattern exists in the GCC/MKL, GCC/AOCL, and AOCC/AOCL wrappers.
Relevant code:
Suggested fix:
Enable set -o pipefail before the pipeline, or explicitly exit ${PIPESTATUS[0]} after tee so wrapper callers receive the installer failure status.
This issue is a result of a Codex global repository scan.
Several toolchain wrapper scripts pipe the installer into
tee compile.logwithout enablingpipefailor returning the installer's${PIPESTATUS[0]}. In Bash, the pipeline exit status is the status oftee, so CI/users can see a successful wrapper exit even wheninstall_abacus_toolchain_new.shfailed.Example GNU wrapper:
abacus-develop/toolchain/toolchain_gnu.sh
Lines 118 to 123 in 84ca04b
Example Intel wrapper:
abacus-develop/toolchain/toolchain_intel.sh
Lines 135 to 140 in 84ca04b
The same pattern exists in the GCC/MKL, GCC/AOCL, and AOCC/AOCL wrappers.
Relevant code:
Suggested fix:
Enable
set -o pipefailbefore the pipeline, or explicitlyexit ${PIPESTATUS[0]}afterteeso wrapper callers receive the installer failure status.