-
Notifications
You must be signed in to change notification settings - Fork 447
Closed
Labels
needs infoA bug report is waiting for more informationA bug report is waiting for more information
Description
Required information
Operating system:
Ubuntu 22.04 LTS
Compiler version:
GCC 11.4.0
Eclipse iceoryx version:
2.95.6
Observed result or behaviour:
The runtime does not exit from iox::runtime::PoshRuntimeImpl::~PoshRuntimeImpl()
Expected result or behaviour:
Correct exit of the runtime
Conditions where it occurred / Performed steps:
We have many pipelines for our code, and occasionally one of the tests gets stuck on this destructor. To reproduce the issue, I ran a single test on my machine for a week, and it finally happened today.
Additional helpful information
We have GDB open, and this is the stack trace. Could you please help us debug it and find out why this happens?
(gdb) t 1
[Switching to thread 1 (Thread 0x7ffff7e20b80 (LWP 79268))]
#0 __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=79276, futex_word=0x7ffff7234910) at ./nptl/futex-internal.c:57
57 ./nptl/futex-internal.c: No such file or directory.
(gdb) bt full
#0 __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=79276, futex_word=0x7ffff7234910) at ./nptl/futex-internal.c:57
sc_cancel_oldtype = 0
sc_ret = <optimized out>
resultvar = <optimized out>
__arg6 = <optimized out>
__arg5 = <optimized out>
__arg4 = <optimized out>
__arg3 = <optimized out>
__arg2 = <optimized out>
__arg1 = <optimized out>
_a6 = <optimized out>
_a5 = <optimized out>
_a4 = <optimized out>
_a3 = <optimized out>
_a2 = <optimized out>
_a1 = <optimized out>
#1 __futex_abstimed_wait_common (cancel=true, private=128, abstime=0x0, clockid=0, expected=79276, futex_word=0x7ffff7234910) at ./nptl/futex-internal.c:87
err = <optimized out>
clockbit = 256
op = 265
err = <optimized out>
clockbit = <optimized out>
op = <optimized out>
#2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7ffff7234910, expected=79276, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=128) at ./nptl/futex-internal.c:139
No locals.
#3 0x00007ffff7441624 in __pthread_clockjoin_ex (threadid=140737339672128, thread_return=0x0, clockid=0, abstime=0x0, block=<optimized out>) at ./nptl/pthread_join_common.c:105
ret = <optimized out>
_buffer = {__routine = 0x7ffff74414d0 <cleanup>, __arg = 0x7ffff7234c68, __canceltype = -13760, __prev = 0x0}
tid = <optimized out>
pd = 0x7ffff7234640
self = <optimized out>
result = 0
pd_result = <optimized out>
#4 0x00007ffff76b02c7 in std::thread::join() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#5 0x00007ffff7a718a1 in iox::concurrent::detail::PeriodicTask<iox::storable_function<128ul, void ()> >::stop() (this=0x7ffff7e02820 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::buf+420000>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_hoofs/concurrent/sync_extended/include/iox/detail/periodic_task.inl:73
No locals.
#6 0x00007ffff7a70074 in iox::concurrent::detail::PeriodicTask<iox::storable_function<128ul, void ()> >::~PeriodicTask() (this=0x7ffff7e02820 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::buf+420000>, __in_chrg=<optimized out>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_hoofs/concurrent/sync_extended/include/iox/detail/periodic_task.inl:56
No locals.
#7 0x00007ffff7a6e4e6 in iox::optional<iox::concurrent::detail::PeriodicTask<iox::storable_function<128ul, void ()> > >::destruct_value() (this=0x7ffff7e02818 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::buf+419992>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_hoofs/vocabulary/include/iox/detail/optional.inl:291
No locals.
#8 0x00007ffff7a6d2e9 in iox::optional<iox::concurrent::detail::PeriodicTask<iox::storable_function<128ul, void ()> > >::~optional() (this=0x7ffff7e02818 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::buf+419992>, __in_chrg=<optimized out>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_hoofs/vocabulary/include/iox/detail/optional.inl:161
No locals.
#9 0x00007ffff7a66ae8 in iox::runtime::PoshRuntimeImpl::~PoshRuntimeImpl (this=0x7ffff7d9bf80 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::buf>, __in_chrg=<optimized out>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_posh/source/runtime/posh_runtime_impl.cpp:148
sendBuffer = <optimized out>
receiveBuffer = <optimized out>
IpcMessage = <optimized out>
__FUNCTION__ = <optimized out>
sendBuffer = <optimized out>
receiveBuffer = <optimized out>
IpcMessage = <optimized out>
#10 0x00007ffff7a63c21 in operator() (__closure=0x7ffff7e02960 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::staticLifetimeParticipant+32>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_posh/source/runtime/posh_runtime.cpp:117
No locals.
#11 0x00007ffff7a6429e in iox::storable_function<128, void()>::invoke<iox::runtime::PoshRuntime::getLifetimeParticipant()::<lambda()> >(void *) (callable=0x7ffff7e02960 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::staticLifetimeParticipant+32>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_hoofs/functional/include/iox/detail/storable_function.inl:311
No locals.
#12 0x00007ffff7a65242 in iox::storable_function<128ul, void ()>::operator()() const (this=0x7ffff7e02948 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::staticLifetimeParticipant+8>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_hoofs/functional/include/iox/detail/storable_function.inl:168
__FUNCTION__ = "operator()"
#13 0x00007ffff7a64b9e in iox::ScopeGuardWithVariableCapacity<128ul>::destroy (this=0x7ffff7e02940 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::staticLifetimeParticipant>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_hoofs/memory/include/iox/detail/scope_guard.inl:84
No locals.
#14 0x00007ffff7a647a0 in iox::ScopeGuardWithVariableCapacity<128ul>::~ScopeGuardWithVariableCapacity (this=0x7ffff7e02940 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::staticLifetimeParticipant>, __in_chrg=<optimized out>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_hoofs/memory/include/iox/detail/scope_guard.inl:43
No locals.
#15 0x00007ffff73f0495 in __run_exit_handlers (status=0, listp=0x7ffff75c5838 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at ./stdlib/exit.c:113
atfct = <optimized out>
onfct = <optimized out>
cxafct = <optimized out>
arg = 0x7ffff7e02940 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::staticLifetimeParticipant>
f = <optimized out>
new_exitfn_called = <optimized out>
cur = 0x555555652130
#16 0x00007ffff73f0610 in __GI_exit (status=<optimized out>) at ./stdlib/exit.c:143
No locals.
#17 0x00007ffff73d4d97 in __libc_start_call_main (main=main@entry=0x5555555756b0 <main(int, char**)>, argc=argc@entry=3, argv=argv@entry=0x7fffffffce68) at ../sysdeps/nptl/libc_start_call_main.h:74
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 7375180221807022210, 140737488342632, 93824992368304, 93824993167416, 140737354125376, -7375180223470546814, -7375197253012205438}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x55555563e008, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1432608776}}}
not_first_call = <optimized out>
#18 0x00007ffff73d4e40 in __libc_start_main_impl (main=0x5555555756b0 <main(int, char**)>, argc=3, argv=0x7fffffffce68, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffce58) at ../csu/libc-start.c:392
No locals.
#19 0x0000555555576ed5 in _start ()(gdb) f 5
#5 0x00007ffff7a718a1 in iox::concurrent::detail::PeriodicTask<iox::storable_function<128ul, void ()> >::stop() (this=0x7ffff7e02820 <iox::runtime::PoshRuntime::defaultRuntimeFactory(iox::optional<iox::string<87ul> const*>)::buf+420000>) at /workspaces/tk.ws4/build/iceoryx-2.95.6-mmap/iceoryx_hoofs/concurrent/sync_extended/include/iox/detail/periodic_task.inl:73
73 m_taskExecutor.join();
(gdb) p m_stop
$1 = {<iox::internal::FunctionalInterfaceImpl<iox::optional<iox::UnnamedSemaphore>, iox::UnnamedSemaphore, void>> = {<iox::internal::ExpectWithValue<iox::optional<iox::UnnamedSemaphore>, iox::UnnamedSemaphore>> = {<No data fields>}, <iox::internal::ValueOr<iox::optional<iox::UnnamedSemaphore>, iox::UnnamedSemaphore>> = {<No data fields>}, <iox::internal::AndThenWithValue<iox::optional<iox::UnnamedSemaphore>, iox::UnnamedSemaphore>> = {<No data fields>}, <iox::internal::OrElse<iox::optional<iox::UnnamedSemaphore> >> = {<No data fields>}, <No data fields>}, m_hasValue = true, m_data = {data = {(unknown: 0x1), 0 <repeats 31 times>, (unknown: 0x1), 0, 0, 0, 0, 0, 0, 0}}}
(gdb)Metadata
Metadata
Assignees
Labels
needs infoA bug report is waiting for more informationA bug report is waiting for more information