BUG: Late-timeout during finalize
This adds a script which reproduces this bug after a lot of iterations in gdb and lets us get a backtrace
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
==========================================
|
||||
Iteration 67 - Thu Oct 30 08:41:13 PM AST 2025
|
||||
==========================================
|
||||
|
||||
GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
|
||||
Copyright (C) 2024 Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
||||
This is free software: you are free to change and redistribute it.
|
||||
There is NO WARRANTY, to the extent permitted by law.
|
||||
Type "show copying" and "show warranty" for details.
|
||||
This GDB was configured as "x86_64-linux-gnu".
|
||||
Type "show configuration" for configuration details.
|
||||
For bug reporting instructions, please see:
|
||||
<https://www.gnu.org/software/gdb/bugs/>.
|
||||
Find the GDB manual and other documentation resources online at:
|
||||
<http://www.gnu.org/software/gdb/documentation/>.
|
||||
|
||||
For help, type "help".
|
||||
Type "apropos word" to search for commands related to "word"...
|
||||
Reading symbols from salmanoff...
|
||||
SIGINT is used by the debugger.
|
||||
Are you sure you want to change it? (y or n) [answered Y; input not from terminal]
|
||||
Waiting 2281ms before sending SIGINT...
|
||||
Starting program...
|
||||
|
||||
This GDB supports auto-downloading debuginfo from the following URLs:
|
||||
<https://debuginfod.ubuntu.com>
|
||||
Enable debuginfod for this session? (y or [n]) [answered N; input not from terminal]
|
||||
Debuginfod has been disabled.
|
||||
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
|
||||
[Thread debugging using libthread_db enabled]
|
||||
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
|
||||
[New Thread 0x7ffff77ff6c0 (LWP 805031)]
|
||||
CRT:main: about to JOLT Mrntt with cmdline args
|
||||
main: Waiting for command line JOLT
|
||||
Mrntt:operator():JOLTED: setting cmdline args
|
||||
main: salmanoff 0.01.000
|
||||
main: DAP Specs:
|
||||
DAP Spec Files: devices/bodies/dell-laptop.daps
|
||||
Stim Buff API Library Paths: commonLibs/livoxProto1/ commonLibs/xcbXorg/ stimBuffApis/xcbWindow/ stimBuffApis/livoxGen1/
|
||||
Stim Buff API Libraries: libxcbWindow.so liblivoxGen1.so
|
||||
|
||||
initializeSalmanoff: Entered.
|
||||
|
||||
main: Entering event loop
|
||||
[New Thread 0x7ffff6ffe6c0 (LWP 805032)]
|
||||
[New Thread 0x7ffff67fd6c0 (LWP 805033)]
|
||||
[New Thread 0x7ffff5ffc6c0 (LWP 805034)]
|
||||
[New Thread 0x7ffff57fb6c0 (LWP 805035)]
|
||||
[New Thread 0x7ffff4ffa6c0 (LWP 805036)]
|
||||
distributeAndPinThreadsAcrossCpus: Distributed 5 threads across 4 CPUs
|
||||
joltThreadReq1_posted: Thread 'director': handling JOLT request.
|
||||
joltThreadReq1_posted: Thread 'simulator': handling JOLT request.
|
||||
joltThreadReq1_posted: Thread 'subconscious': handling JOLT request.
|
||||
joltThreadReq1_posted: Thread 'body': handling JOLT request.
|
||||
body:main: Entering event loop
|
||||
simulator:main: Entering event loop
|
||||
subconscious:main: Entering event loop
|
||||
joltThreadReq1_posted: Thread 'world': handling JOLT request.
|
||||
world:main: Entering event loop
|
||||
Mrntt: All mind threads JOLTed.
|
||||
director:main: Entering event loop
|
||||
startThreadReq1_posted: Thread 'director': handling startThread.
|
||||
startThreadReq1_posted: Thread 'body': handling startThread.
|
||||
startThreadReq1_posted: Thread 'simulator': handling startThread.
|
||||
startThreadReq1_posted: Thread 'world': handling startThread.
|
||||
startThreadReq1_posted: Thread 'subconscious': handling startThread.
|
||||
Mrntt: All mind threads started.
|
||||
Library Path: libxcbWindow.so
|
||||
Stim Buff API Descriptor: Name: xcb
|
||||
Exported QualeIface APIs:
|
||||
- visual-qualeiface
|
||||
|
||||
|
||||
Library Path: liblivoxGen1.so
|
||||
Stim Buff API Descriptor: Name: livoxGen1
|
||||
Exported QualeIface APIs:
|
||||
- pcloud
|
||||
- pcloudIntensity
|
||||
- gyro
|
||||
- accel
|
||||
|
||||
|
||||
|
||||
start: BroadcastListener started on port 55000
|
||||
start: UDP Command Demuxer started on port 56001
|
||||
attachStimBuffDeviceReq1_posted: Attaching edev win0 to world thread
|
||||
xcbWindow_attachDeviceReq: Attached X11 window:
|
||||
Display: 1, Screen: 0, MatchType: substring, Target: "mut", Found: "mutter guard window" (matched substring 'mut')
|
||||
attachStimBuffDeviceReq1_posted: Attaching edev avia0 to world thread
|
||||
getOrCreateDeviceReq1: Connection failed for device 3JEDK380010Z39
|
||||
attachDeviceReq1: Failed to create/find Livox device: 3JEDK380010Z39
|
||||
newDeviceAttachmentSpecInd2: Attach failed for device spec Device Identifier: avia0, Sensor Type: e, QualeIface API: structural-qualeiface, StimBuff API: livoxGen1, StimBuff API Params: (), Provider: livoxProto1, Provider Params: (), Device Selector: 3JEDK380010Z39
|
||||
|
||||
attachAllUnattachedDevicesFromReq2: Failed to attach device: avia0
|
||||
Mrntt: attached 1 of 2 sense devices.
|
||||
Mrntt: Body component initialized.
|
||||
negtrinEventInd: Handling negtrin event.
|
||||
marionetteInitializeReqCb: Marionette initialized.
|
||||
broadcastMsgInd: Discovered new Livox device: DiscoveredDevice{identifier='3JEDK380010Z391', ipAddr='10.42.0.139', deviceType=7 (Avia)}
|
||||
attachStimBuffDeviceReq1_posted: Attaching edev avia0 to world thread
|
||||
attachDeviceReq1: Successfully attached/found Livox device: 3JEDK380010Z39 (ID: avia0)
|
||||
Sending SIGINT to program (PID: 805028)...
|
||||
SIGINT (Ctrl+C) received. Initiating shutdown...
|
||||
Mrntt: About to detach all sense devices.
|
||||
xcbWindow_detachDeviceReq: Detached X11 window device:
|
||||
Device Identifier: win0, Sensor Type: e, QualeIface API: visual-qualeiface, StimBuff API: xcb, StimBuff API Params: (dev-substring ), Provider: xorg, Provider Params: (display=1 screen=0 ), Device Selector: mut
|
||||
|
||||
Mrntt: Successfully detached 1 of 1 sense devices.
|
||||
Mrntt: About to finalize all stim buff api libs.
|
||||
stop: UDP Command Demuxer stopped
|
||||
stop: BroadcastListener stopped
|
||||
broadcastMsgInd: Error receiving broadcast message: Operation canceled
|
||||
Mrntt: About to unload all stim buff api libs.
|
||||
|
||||
Thread 7 "salmanoff" received signal SIGSEGV, Segmentation fault.
|
||||
[Switching to Thread 0x7ffff4ffa6c0 (LWP 805036)]
|
||||
0x0000000000000000 in ?? ()
|
||||
|
||||
=== SEGFAULT DETECTED ===
|
||||
#0 0x0000000000000000 in ?? ()
|
||||
#1 0x00007ffff7ace057 in smo::stim_buff::AttachDeviceReq::attachDeviceReq2 (this=0x7ffff00098a0,
|
||||
context=std::shared_ptr<smo::stim_buff::AttachDeviceReq> (use count 4, weak count 1) = {...}, error=...) at /home/latentprion/gits/salmanoff-git/stimBuffApis/livoxGen1/livoxGen1.cpp:160
|
||||
#2 0x00007ffff7ae6584 in std::__invoke_impl<void, void (smo::stim_buff::AttachDeviceReq::*&)(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&), smo::stim_buff::AttachDeviceReq*&, std::shared_ptr<smo::stim_buff::AttachDeviceReq>&, boost::system::error_code const&> (
|
||||
__f=@0x7ffff4ff9a80: (void (smo::stim_buff::AttachDeviceReq::*)(smo::stim_buff::AttachDeviceReq * const, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, const boost::system::error_code &)) 0x7ffff7acde68 <smo::stim_buff::AttachDeviceReq::attachDeviceReq2(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>,
|
||||
__t=@0x7ffff4ff9aa0: 0x7ffff00098a0) at /usr/include/c++/13/bits/invoke.h:74
|
||||
#3 0x00007ffff7ae42b1 in std::__invoke<void (smo::stim_buff::AttachDeviceReq::*&)(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&), smo::stim_buff::AttachDeviceReq*&, std::shared_ptr<smo::stim_buff::AttachDeviceReq>&, boost::system::error_code const&> (
|
||||
__fn=@0x7ffff4ff9a80: (void (smo::stim_buff::AttachDeviceReq::*)(smo::stim_buff::AttachDeviceReq * const, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, const boost::system::error_code &)) 0x7ffff7acde68 <smo::stim_buff::AttachDeviceReq::attachDeviceReq2(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>)
|
||||
at /usr/include/c++/13/bits/invoke.h:96
|
||||
#4 0x00007ffff7ae1fe1 in std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>::__call<void, boost::system::error_code const&, 0ul, 1ul, 2ul>(std::tuple<boost::system::error_code const&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7ffff4ff9a80, __args=...) at /usr/include/c++/13/functional:506
|
||||
#5 0x00007ffff7ade79a in std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>::operator()<boost::system::error_code const&, void>(boost::system::error_code const&) (this=0x7ffff4ff9a80)
|
||||
at /usr/include/c++/13/functional:591
|
||||
#6 0x00007ffff7aec999 in boost::asio::detail::binder1<std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>, boost::system::error_code>::operator()() (this=0x7ffff4ff9a80)
|
||||
at /usr/include/boost/asio/detail/bind_handler.hpp:171
|
||||
#7 0x00007ffff7aebd0e in boost::asio::asio_handler_invoke<boost::asio::detail::binder1<std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>, boost::system::error_code>&, ...) (function=...) at /usr/include/boost/asio/handler_invoke_hook.hpp:88
|
||||
#8 0x00007ffff7aea450 in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>, boost::system::error_code>, std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)> >(boost::asio::detail::binder1<std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>, boost::system::error_code>&, std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>&) (function=..., context=...) at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:54
|
||||
#9 0x00007ffff7ae8790 in boost::asio::detail::handler_work<std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>, boost::asio::any_io_executor, void>::complete<boost::asio::detail::binder1<std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>, boost::system::error_code> >(boost::asio::detail::binder1<std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>, boost::system::error_code>&, std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>&) (this=0x7ffff4ff9a40, function=..., handler=...) at /usr/include/boost/asio/detail/handler_work.hpp:524
|
||||
#10 0x00007ffff7ae6986 in boost::asio::detail::wait_handler<std::_Bind<void (smo::stim_buff::AttachDeviceReq::*(smo::stim_buff::AttachDeviceReq*, std::shared_ptr<smo::stim_buff::AttachDeviceReq>, std::_Placeholder<1>))(std::shared_ptr<smo::stim_buff::AttachDeviceReq>, boost::system::error_code const&)>, boost::asio::any_io_executor>::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) (owner=0x7ffff0007970, base=0x7fffe400a180) at /usr/include/boost/asio/detail/wait_handler.hpp:76
|
||||
#11 0x000055555556d35e in boost::asio::detail::scheduler_operation::complete (this=0x7fffe400a180, owner=0x7ffff0007970, ec=..., bytes_transferred=0)
|
||||
at /usr/include/boost/asio/detail/scheduler_operation.hpp:40
|
||||
#12 0x00005555555706e7 in boost::asio::detail::scheduler::do_run_one (this=0x7ffff0007970, lock=..., this_thread=..., ec=...) at /usr/include/boost/asio/detail/impl/scheduler.ipp:493
|
||||
#13 0x00005555555700b9 in boost::asio::detail::scheduler::run (this=0x7ffff0007970, ec=...) at /usr/include/boost/asio/detail/impl/scheduler.ipp:210
|
||||
#14 0x0000555555570a9d in boost::asio::io_context::run (this=0x7ffff0007900) at /usr/include/boost/asio/impl/io_context.ipp:64
|
||||
#15 0x00005555555f6b10 in smo::MindThread::main (self=...) at /home/latentprion/gits/salmanoff-git/smocore/componentThread.cpp:82
|
||||
#16 0x00005555555f4ed3 in std::__invoke_impl<void, void (*)(smo::MindThread&), std::reference_wrapper<smo::MindThread> > (
|
||||
__f=@0x7ffff0007bf0: 0x5555555f6984 <smo::MindThread::main(smo::MindThread&)>) at /usr/include/c++/13/bits/invoke.h:61
|
||||
#17 0x00005555555f4e41 in std::__invoke<void (*)(smo::MindThread&), std::reference_wrapper<smo::MindThread> > (
|
||||
__fn=@0x7ffff0007bf0: 0x5555555f6984 <smo::MindThread::main(smo::MindThread&)>) at /usr/include/c++/13/bits/invoke.h:96
|
||||
#18 0x00005555555f4d2f in std::thread::_Invoker<std::tuple<void (*)(smo::MindThread&), std::reference_wrapper<smo::MindThread> > >::_M_invoke<0ul, 1ul> (this=0x7ffff0007be8)
|
||||
at /usr/include/c++/13/bits/std_thread.h:292
|
||||
#19 0x00005555555f4c88 in std::thread::_Invoker<std::tuple<void (*)(smo::MindThread&), std::reference_wrapper<smo::MindThread> > >::operator() (this=0x7ffff0007be8)
|
||||
at /usr/include/c++/13/bits/std_thread.h:299
|
||||
#20 0x00005555555f4bdc in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(smo::MindThread&), std::reference_wrapper<smo::MindThread> > > >::_M_run (this=0x7ffff0007be0)
|
||||
at /usr/include/c++/13/bits/std_thread.h:244
|
||||
#21 0x00007ffff7cecdb4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
|
||||
#22 0x00007ffff789caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
||||
#23 0x00007ffff7929c6c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
||||
|
||||
=== GDB is now interactive - you can inspect the state ===
|
||||
[Thread 0x7ffff4ffa6c0 (LWP 805036) exited]
|
||||
[Thread 0x7ffff57fb6c0 (LWP 805035) exited]
|
||||
[Thread 0x7ffff5ffc6c0 (LWP 805034) exited]
|
||||
[Thread 0x7ffff67fd6c0 (LWP 805033) exited]
|
||||
[Thread 0x7ffff6ffe6c0 (LWP 805032) exited]
|
||||
[Thread 0x7ffff7f5f780 (LWP 805028) exited]
|
||||
[Thread 0x7ffff77ff6c0 (LWP 805031) exited]
|
||||
[New process 805028]
|
||||
|
||||
Program terminated with signal SIGSEGV, Segmentation fault.
|
||||
The program no longer exists.
|
||||
(gdb)
|
||||
Reference in New Issue
Block a user