- changed status to resolved
regression in uts_{omp,threads} on el-captain with gcc 6
Issue #403
resolved
Nightly CI shows that uts_{omp,threads}-par have apparently regressed as of 2ba7f73 on (at least) el-captain with gcc 6 and debug. Strangely, these tests use no backend and very little UPC++ at all (just persona-specific progress and lpc_ff).
Here is the crash stack for uts_threads, with one thread:
frame #7: 0x00000001000135c9 a.out`upcxx::assert_failed(func="upcxx::detail::persona_scope_redundant::~persona_scope_redundant()", file="/Users/bonachea/UPC/bxx-gcc-6/bld/upcxx.assert1.optlev0.dbgsym1.gasnet_par.smp/include/upcxx/persona.hpp", line=468, str=0x00007fff5fbff010) + 57 at diagnostic.hpp:14
* frame #8: 0x00000001000144ac a.out`upcxx::detail::persona_scope_redundant::~persona_scope_redundant(this=0x00007fff5fbff080) + 140 at persona.hpp:468
frame #9: 0x0000000100002d96 a.out`void upcxx::detail::persona_tls::foreach_active_as_top<upcxx::detail::persona_tls::persona_only_progress()::'lambda'(upcxx::persona&)>(this=0x0000000100a003a8, fn=0x00007fff5fbff110)::'lambda'(upcxx::persona&)&&) + 130 at persona.hpp:756
frame #10: 0x0000000100001b19 a.out`upcxx::detail::persona_tls::persona_only_progress(this=0x0000000100a003a8) + 125 at persona.hpp:821
frame #11: 0x0000000100001be5 a.out`vranks::progress() + 31 at vranks_threads.hpp:34
frame #12: 0x0000000100002aa8 a.out`qd_progress(local_quiescence=true) + 23 at uts.cpp:257
frame #13: 0x00000001000023ee a.out`uts_parallel(par_node_n=0x00007fff5fbff270, par_hash=0x00007fff5fbff260) + 521 at uts.cpp:149
frame #14: 0x0000000100001e06 a.out`operator(__closure=0x00007fff5fbff3c0, vrank_me1=0, vrank_n1=1) + 262 at uts.cpp:50
frame #15: 0x0000000100003052 a.out`operator(__closure=0x00007fff5fbff330, vrank_me=0) + 184 at vranks_threads.hpp:60
frame #16: 0x0000000100003197 a.out`::spawn<main()::<lambda(int, int)> >(fn=<lambda(int, int)> @ 0x00007fff5fbff3c0)>) + 317 at vranks_threads.hpp:66
frame #17: 0x0000000100001e63 a.out`main + 18 at uts.cpp:53
I'm still investigating.
Comments (1)
-
reporter - Log in to comment
fixup: test/uts/uts_{omp,threads}: fixes for backend-free operation
Turns out that #undef UPCXX_BACKEND_GASNET_PAR breaks our ABI leading to subtle breakage when linking libupcxx-par.
These tests have now been upgraded to full headers and defines, they just skip the upcxx::init() to fire up the backend.
Resolves issue
#403→ <<cset 9d21a3f36c01>>