Mac+gcc+VIS breaks on lpc operation with seq and par

Issue #127 resolved
BrianS created an issue

When using an lpc completion for a vis operation (rput and rget) the code throws out a SIGSEGV(11) on what appears to be a std::atomic operation. This happens in the absence of any spawned threads from user-space.

[2]     frame #8: 0x000000010a530248 vis-seq`std::atomic<upcxx::detail::lpc_inbox_lockfree_base::lpc*>::store(upcxx::detail::lpc_inbox_lockfree_base::lpc*, std::memory_order) at atomic_base.h:691
[2]     frame #9: 0x000000010a53022d vis-seq`std::atomic<upcxx::detail::lpc_inbox_lockfree_base::lpc*>::store(this=0x0000000000000000, __p=0x00007fae94000fb0, __m=memory_order_relaxed)
[2]     frame #10: 0x000000010a54cf6a vis-seq`lpc_inbox_lockfree<2>::send<std::_Bind<main(this=0x00007fae940004c8, q=1, fn=0x00007ffee56ff7c0)::<lambda()>()> >(int, _Bind<<lambda()> ()> &) const at inbox_lockfree.hpp:75
[2]     frame #11: 0x000000010a54c2a9 vis-seq`persona::lpc_ff<std::_Bind<main()::<lambda()>()> >(this=0x00007fae94000488, fn=_Bind<main()::<lambda()>()> @ 0x00007ffee56ff7c0)> ()>) const at persona.hpp:99
[2]     frame #12: 0x000000010a54b82f vis-seq`cx_state<upcxx::lpc_cx<upcxx::operation_cx_event, main()::<lambda()> >, std::tuple<> >::operator(this=0x00007fae94000f70)() const at completion.hpp:370
[2]     frame #13: 0x000000010a54ae62 vis-seq`completions_state_head<true, upcxx::detail::rput_event_values, upcxx::lpc_cx<upcxx::operation_cx_event, main()::<lambda()> > >::operator_case<>(this=0x00007fae94000f70, (null)=integral_constant<bool, true> @ 0x00007ffee56ff810) const at completion.hpp:462
[2]     frame #14: 0x000000010a54a04d vis-seq`completions_state_head<true, upcxx::detail::rput_event_values, upcxx::lpc_cx<upcxx::operation_cx_event, main()::<lambda()> > >::operator(this=0x00007fae94000f70)<upcxx::operation_cx_event>() const at completion.hpp:472
[2]     frame #15: 0x000000010a549972 vis-seq`completions_state<upcxx::detail::event_is_here, upcxx::detail::rput_event_values, upcxx::completions<upcxx::lpc_cx<upcxx::operation_cx_event, main()::<lambda()> >, upcxx::future_cx<upcxx::operation_cx_event>, upcxx::rpc_cx<upcxx::remote_cx_event, upcxx::bound_function<main()::<lambda(upcxx::dist_object<std::array<int, 2> >&)>&&, upcxx::dist_object<std::array<int, 2> >&> > > >::operator(this=0x00007fae94000f70)<upcxx::operation_cx_event>() const at completion.hpp:518

Comments (2)

  1. Log in to comment