`upcxx-run` drops error exit code

Issue #125 resolved
Dan Bonachea created an issue

On Linux/x86_64/gcc-7.2.0 (dirac), there is currently a VIS assertion bug that is causing the test to fail (note the git hash 423e1ae).

However when run-tests invokes nobs run to run the test, nobs reports back a zero exit code, as demonstrated here :

[bonachea@pcp-d-6 upcxx]$ git describe
upcxx-2017.9.1-112-g423e1ae
[bonachea@pcp-d-6 upcxx]$ OPTLEV=0 DBGSYM=1 ASSERT=1 GASNET_PSHM_NODES=1 GASNET_CONDUIT=smp nobs run test/vis.cpp ; echo $? 
Test: vis.cpp
Ranks: 1

sending to 0:  0 1 2 3 4 5

Irregular test 2 

Regular put test 1

Strided put testing 
Irregular rget test 1

leaving for 0:  0 1 2 3 4 5
Irregular rget test 2
*** FATAL ERROR: 
//////////////////////////////////////////////////
UPC++ assertion failure:
 rank=0
 file=/home/pcp1/bonachea/UPC/upcxx/.nobs/art/2ecccfad9baca6e82392b8f8e20ffaf1f01a612a/upcxx/vis.hpp:531

Failed condition: (*s).rank_

To have UPC++ freeze during these errors so you can attach a debugger, rerun the program with GASNET_FREEZE_ON_ERROR=1 in the environment.
//////////////////////////////////////////////////

NOTICE: Before reporting bugs, run with GASNET_BACKTRACE=1 in the environment to generate a backtrace. 
*** Caught a fatal signal: SIGABRT(6) on node 0/1
0

Note the 0 at the end.

run-tests considers that a pass instead of detecting the failure, making this a blocker.

Comments (4)

  1. Dan Bonachea reporter

    As of 36b7e61 run-tests now also greps the output for "ERROR" in stdout/stderr, so signal death and failures via print_test_success() should always be diagnosed correctly, even if the spawner and/or nobs misreport the exit code.

  2. john bachan

    nobs is not dropping the return code, upcxx-run is.

    upcxx-run invokes subcommand with: subprocess.call(cmd) and is dropping returncode. One of the the os.exec* variants would be better.

  3. Log in to comment