Hi,
I know there are threads with similar topics, but all claim to have been solved and I see this with current git master, so …
I tested ardour 7 on linux with a notebook and on a server. Everything is fine, until I want to quit the application. Then it just hangs until I kill it (with a TERM signal or similar).
I run on Opensuse Tumbleweed with latest updates.
My glibc is version 2.37 (another thread mentions the hanging exit is fixed with 2.36)
I tested ardour 7.3 coming with the distro, your downloadable demo and a selfcompiled version from git (master as of today). All have the same problem.
What might be different than most other installations is that I use pipewire (with pulseaudio and jack compatibility enabled) as audio backend.
To test it I just start ardour, without plugins, new empty session, then immediately close.
I am asked about saving/discarding the session (my answer doesn’t matter). Then it hangs.
These are the backtraces of all threads while it hangs, maybe you can do something with it:
Backtraces
(gdb) thread apply all bt
Thread 12 (Thread 0x7f5271ffd6c0 (LWP 24280) "pw-ardour"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f52b0c6e02c in g_mutex_lock_slowpath (mutex=0x405a688) at ../glib/gthread-posix.c:1388
#2 0x00000000007402cc in Glib::Threads::Mutex::Lock::Lock(Glib::Threads::Mutex&) (this=0x7f5271ffc020, mutex=...) at /usr/include/glibmm-2.4/glibmm/threads.h:687
#3 0x00007f52b2ab1c96 in ARDOUR::AudioEngine::buffer_size_change(unsigned int) (this=0x4059e30, bufsiz=1024) at ../libs/ardour/audioengine.cc:214
#4 0x00007f529277f41f in ARDOUR::JACKAudioBackend::jack_bufsize_callback(unsigned int) (this=0x394ff10, nframes=1024) at ../libs/backends/jack/jack_audiobackend.cc:1057
#5 0x00007f529277f25c in ARDOUR::JACKAudioBackend::_bufsize_callback(unsigned int, void*) (nframes=1024, arg=0x394ff10) at ../libs/backends/jack/jack_audiobackend.cc:1021
#6 0x00007f52926e03fc in do_buffer_frames (loop=<optimized out>, async=<optimized out>, seq=<optimized out>, data=<optimized out>, size=<optimized out>, user_data=0x4448d00) at ../pipewire-jack/src/pipewire-jack.c:1316
#7 0x00007f52926d91a2 in check_buffer_frames (pos=<optimized out>, c=0x4448d00) at ../pipewire-jack/src/pipewire-jack.c:1328
#8 do_update_driver_activation (loop=<optimized out>, async=<optimized out>, seq=<optimized out>, data=<optimized out>, size=<optimized out>, user_data=0x4448d00) at ../pipewire-jack/src/pipewire-jack.c:1653
#9 0x00007f52926f5b6d in update_driver_activation.isra.0 (c=c@entry=0x4448d00) at ../pipewire-jack/src/pipewire-jack.c:1685
#10 0x00007f52926da433 in client_node_set_io (data=0x4448d00, id=7, mem_id=0, offset=<optimized out>, size=1688) at ../pipewire-jack/src/pipewire-jack.c:1723
#11 0x00007f52815623e1 in client_node_demarshal_set_io (data=<optimized out>, msg=<optimized out>) at ../src/modules/module-client-node/protocol-native.c:665
#12 0x00007f5281598179 in process_remote (impl=impl@entry=0x53d5930) at ../src/modules/module-protocol-native.c:946
#13 0x00007f52815987e0 in on_remote_data (data=0x53d5930, fd=22, mask=1) at ../src/modules/module-protocol-native.c:980
#14 0x00007f52926b676e in loop_iterate (object=0x53a9e18, timeout=-1) at ../spa/plugins/support/loop.c:432
#15 0x00007f5283ea78b2 in do_loop (user_data=0x53dcbe0) at ../src/pipewire/thread-loop.c:233
#16 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#17 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 11 (Thread 0x7f5273fff6c0 (LWP 24266) "gdbus"):
#0 0x00007f52aed0c08f in __GI___poll (fds=0x7f526c000b90, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
--Type <RET> for more, q to quit, c to continue without paging--c
#1 0x00007f52b0c152ce in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7f526c000b90, timeout=<optimized out>, context=0x3e31770) at ../glib/gmain.c:4584
#2 g_main_context_iterate (context=0x3e31770, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4271
#3 0x00007f52b0c1560f in g_main_loop_run (loop=0x3e3c2e0) at ../glib/gmain.c:4479
#4 0x00007f52b0404a86 in gdbus_shared_thread_func (user_data=0x3dfb130) at ../gio/gdbusprivate.c:284
#5 0x00007f52b0c41a8e in g_thread_proxy (data=0x3df8ba0) at ../glib/gthread.c:831
#6 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#7 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 10 (Thread 0x7f5272ffe6c0 (LWP 24265) "gmain"):
#0 0x00007f52aed0c08f in __GI___poll (fds=0x3e2d5d0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007f52b0c152ce in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x3e2d5d0, timeout=<optimized out>, context=0x3e2d430) at ../glib/gmain.c:4584
#2 g_main_context_iterate (context=context@entry=0x3e2d430, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4271
#3 0x00007f52b0c153ec in g_main_context_iteration (context=0x3e2d430, may_block=may_block@entry=1) at ../glib/gmain.c:4343
#4 0x00007f52b0c15431 in glib_worker_main (data=<optimized out>) at ../glib/gmain.c:6455
#5 0x00007f52b0c41a8e in g_thread_proxy (data=0x3df4cf0) at ../glib/gthread.c:831
#6 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#7 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 9 (Thread 0x7f528294d6c0 (LWP 24264) "pool-spawner"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f52b0c6ea8f in g_cond_wait (cond=cond@entry=0x3e001c8, mutex=mutex@entry=0x3e001c0) at ../glib/gthread-posix.c:1475
#2 0x00007f52b0bdf01b in g_async_queue_pop_intern_unlocked (queue=0x3e001c0, wait=1, end_time=-1) at ../glib/gasyncqueue.c:425
#3 0x00007f52b0c420e2 in g_thread_pool_spawn_thread (data=<optimized out>) at ../glib/gthreadpool.c:311
#4 0x00007f52b0c41a8e in g_thread_proxy (data=0x3df8640) at ../glib/gthread.c:831
#5 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#6 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 8 (Thread 0x7f52910986c0 (LWP 24238) "DeviceList"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f52b0c6ea8f in g_cond_wait (cond=0x405a7e8, mutex=0x405a7f8) at ../glib/gthread-posix.c:1475
#2 0x00007f52b2ab37fe in ARDOUR::AudioEngine::do_devicelist_update() (this=0x4059e30) at ../libs/ardour/audioengine.cc:748
#3 0x00007f52b2ac1acb in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator()(ARDOUR::AudioEngine*) const (this=0x4046940, p=0x4059e30) at /usr/local/include/boost/bind/mem_fn_template.hpp:49
#4 0x00007f52b2ac1185 in boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, ARDOUR::AudioEngine>&, boost::_bi::list0&, int) (this=0x4046950, f=..., a=...) at /usr/local/include/boost/bind/bind.hpp:259
#5 0x00007f52b2ac07c3 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator()() (this=0x4046940) at /usr/local/include/boost/bind/bind.hpp:1294
#6 0x00007f52b2abfd3d in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >, void>::invoke(boost::detail::function::function_buffer&) (function_obj_ptr=...) at /usr/local/include/boost/function/function_template.hpp:158
#7 0x0000000000759f72 in boost::function0<void>::operator()() const (this=0x4046938) at /usr/local/include/boost/function/function_template.hpp:763
#8 0x00007f52b0fe53b3 in PBD::Thread::_run(void*) (arg=0x4046910) at ../libs/pbd/pthread_utils.cc:488
#9 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#10 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 7 (Thread 0x7f529222f6c0 (LWP 24237) "EngineWatchdog"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f52b0c6ea8f in g_cond_wait (cond=0x405a7b8, mutex=0x405a7c8) at ../glib/gthread-posix.c:1475
#2 0x00007f52b2ab35ac in ARDOUR::AudioEngine::do_reset_backend() (this=0x4059e30) at ../libs/ardour/audioengine.cc:712
#3 0x00007f52b2ac1acb in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator()(ARDOUR::AudioEngine*) const (this=0x4067270, p=0x4059e30) at /usr/local/include/boost/bind/mem_fn_template.hpp:49
#4 0x00007f52b2ac1185 in boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, ARDOUR::AudioEngine>&, boost::_bi::list0&, int) (this=0x4067280, f=..., a=...) at /usr/local/include/boost/bind/bind.hpp:259
#5 0x00007f52b2ac07c3 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator()() (this=0x4067270) at /usr/local/include/boost/bind/bind.hpp:1294
#6 0x00007f52b2abfd3d in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >, void>::invoke(boost::detail::function::function_buffer&) (function_obj_ptr=...) at /usr/local/include/boost/function/function_template.hpp:158
#7 0x0000000000759f72 in boost::function0<void>::operator()() const (this=0x4067268) at /usr/local/include/boost/function/function_template.hpp:763
#8 0x00007f52b0fe53b3 in PBD::Thread::_run(void*) (arg=0x4067240) at ../libs/pbd/pthread_utils.cc:488
#9 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#10 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 6 (Thread 0x7f5293fff6c0 (LWP 24235) "Analyzer"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f52b0c6ea8f in g_cond_wait (cond=0x7f52b3a5c040 <ARDOUR::Analyser::SourcesToAnalyse>, mutex=0x7f52b3a5c038 <ARDOUR::Analyser::analysis_queue_lock>) at ../glib/gthread-posix.c:1475
#2 0x00007f52b2a6366b in ARDOUR::Analyser::work() () at ../libs/ardour/analyser.cc:95
#3 0x00000000010af90d in sigc::pointer_functor0<void>::operator()() const (this=0x38e9620) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#4 0x00007f52b2a667f2 in boost::detail::function::void_function_obj_invoker0<sigc::pointer_functor0<void>, void>::invoke(boost::detail::function::function_buffer&) (function_obj_ptr=...) at /usr/local/include/boost/function/function_template.hpp:158
#5 0x0000000000759f72 in boost::function0<void>::operator()() const (this=0x38e9618) at /usr/local/include/boost/function/function_template.hpp:763
#6 0x00007f52b0fe53b3 in PBD::Thread::_run(void*) (arg=0x38e95f0) at ../libs/pbd/pthread_utils.cc:488
#7 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#8 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 5 (Thread 0x7f52a5ef46c0 (LWP 24234) "PeakFileBuilder"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f52b0c6ea8f in g_cond_wait (cond=0x7f52b3a5f010 <ARDOUR::SourceFactory::PeaksToBuild>, mutex=0x7f52b3a5f020 <ARDOUR::SourceFactory::peak_building_lock>) at ../glib/gthread-posix.c:1475
#2 0x00007f52b333415b in peak_thread_work() () at ../libs/ardour/source_factory.cc:75
#3 0x00007f52b3be4a32 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) (function_ptr=...) at /usr/local/include/boost/function/function_template.hpp:117
#4 0x0000000000759f72 in boost::function0<void>::operator()() const (this=0x38e9a08) at /usr/local/include/boost/function/function_template.hpp:763
#5 0x00007f52b0fe53b3 in PBD::Thread::_run(void*) (arg=0x38e99e0) at ../libs/pbd/pthread_utils.cc:488
#6 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#7 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 4 (Thread 0x7f52a6ef56c0 (LWP 24233) "PeakFileBuilder"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007f52b0c6ea8f in g_cond_wait (cond=0x7f52b3a5f010 <ARDOUR::SourceFactory::PeaksToBuild>, mutex=0x7f52b3a5f020 <ARDOUR::SourceFactory::peak_building_lock>) at ../glib/gthread-posix.c:1475
#2 0x00007f52b333415b in peak_thread_work() () at ../libs/ardour/source_factory.cc:75
#3 0x00007f52b3be4a32 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) (function_ptr=...) at /usr/local/include/boost/function/function_template.hpp:117
#4 0x0000000000759f72 in boost::function0<void>::operator()() const (this=0x38e9ea8) at /usr/local/include/boost/function/function_template.hpp:763
#5 0x00007f52b0fe53b3 in PBD::Thread::_run(void*) (arg=0x38e9e80) at ../libs/pbd/pthread_utils.cc:488
#6 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#7 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 3 (Thread 0x7f52a7ef66c0 (LWP 24232) "LXVSTEventLoop"):
#0 0x00007f52aecdcb85 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7f52a7ef5500, rem=rem@entry=0x7f52a7ef5510) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#1 0x00007f52aece1b87 in __GI___nanosleep (req=req@entry=0x7f52a7ef5500, rem=rem@entry=0x7f52a7ef5510) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2 0x00007f52b0c4344f in g_usleep (microseconds=<optimized out>) at ../glib/gtimer.c:279
#3 0x000000000157f57b in gui_event_loop(void*) (ptr=0x0) at ../gtk2_ardour/linux_vst_gui_support.cc:468
#4 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#5 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 2 (Thread 0x7f52a834b6c0 (LWP 24231) "Trigger Worker"):
#0 0x00007f52aed0c08f in __GI___poll (fds=0x7f52a834a4e4, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007f52b0fbe5cc in CrossThreadChannel::poll_for_request() (this=0x38b6b48) at ../libs/pbd/crossthread.posix.cc:108
#2 0x00007f52b0fbe63b in CrossThreadChannel::receive(char&, bool) (this=0x38b6b48, msg=@0x7f52a834a54f: -1 '\377', wait=true) at ../libs/pbd/crossthread.posix.cc:133
#3 0x00007f52b3394f24 in ARDOUR::TriggerBoxThread::thread_work() (this=0x38b6b20) at ../libs/ardour/triggerbox.cc:4851
#4 0x00007f52b3394eb8 in ARDOUR::TriggerBoxThread::_thread_work(void*) (arg=0x38b6b20) at ../libs/ardour/triggerbox.cc:4839
#5 0x00007f52b0fe4870 in fake_thread_start(void*) (arg=0x389d4d0) at ../libs/pbd/pthread_utils.cc:101
#6 0x00007f52aec92f24 in start_thread (arg=<optimized out>) at pthread_create.c:444
#7 0x00007f52aed19f50 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 1 (Thread 0x7f52aa3c7fc0 (LWP 24230) "ArdourGUI"):
#0 0x00007f52aec8f4ce in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x53dcc5c) at futex-internal.c:57
#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x53dcc5c, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2 0x00007f52aec8f56f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x53dcc5c, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3 0x00007f52aec92210 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x53dcc08, cond=0x53dcc30) at pthread_cond_wait.c:503
#4 ___pthread_cond_wait (cond=cond@entry=0x53dcc30, mutex=mutex@entry=0x53dcc08) at pthread_cond_wait.c:618
#5 0x00007f5283ea7ff6 in pw_thread_loop_wait (loop=0x53dcbe0) at ../src/pipewire/thread-loop.c:360
#6 0x00007f52926dff4a in do_sync (client=0x4448d00) at ../pipewire-jack/src/pipewire-jack.c:870
#7 0x00007f52926e76c0 in jack_deactivate (client=0x4448d00) at ../pipewire-jack/src/pipewire-jack.c:3815
#8 0x00007f52926e4eb5 in jack_client_close (client=0x4448d00) at ../pipewire-jack/src/pipewire-jack.c:3561
#9 0x00007f5292777954 in ARDOUR::JackConnection::close() (this=0x418fff0) at ../libs/backends/jack/jack_connection.cc:149
#10 0x00007f529277e465 in ARDOUR::JACKAudioBackend::stop() (this=0x394ff10) at ../libs/backends/jack/jack_audiobackend.cc:600
#11 0x00007f52b2ab53de in ARDOUR::AudioEngine::stop(bool) (this=0x4059e30, for_latency=false) at ../libs/ardour/audioengine.cc:1105
#12 0x00000000007687ce in ARDOUR_UI::finish() (this=0x4083ce0) at ../gtk2_ardour/ardour_ui.cc:1115
#13 0x0000000000799e80 in sigc::bound_mem_functor0<void, ARDOUR_UI>::operator()() const (this=0x3951d80) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1991
#14 0x00000000007922f6 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, ARDOUR_UI> >::operator()() const (this=0x3951d78) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#15 0x00000000007f32ba in sigc::retype_return_functor<void, sigc::bound_mem_functor0<void, ARDOUR_UI> >::operator()() (this=0x3951d70) at /usr/include/sigc++-2.0/sigc++/adaptors/retype_return.h:269
#16 0x00000000007f152e in sigc::internal::slot_call0<sigc::retype_return_functor<void, sigc::bound_mem_functor0<void, ARDOUR_UI> >, void>::call_it(sigc::internal::slot_rep*) (rep=0x3951d40) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:136
#17 0x00007f52b0dc3588 in sigc::slot0<void>::operator()() const (this=0x3986458) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:535
#18 Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) (self=<optimized out>, data=0x3986450) at ../glib/glibmm/signalproxy.cc:103
#22 0x00007f52b0d2fa5f in <emit signal ??? on instance 0x3956ad0 [gtkmm__GtkAction]> (instance=instance@entry=0x3956ad0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3612
#19 0x00007f52b0d154f0 in g_closure_invoke (closure=0x3986590, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffc945e5060, invocation_hint=invocation_hint@entry=0x7ffc945e4fe0) at ../gobject/gclosure.c:832
#20 0x00007f52b0d28c14 in signal_emit_unlocked_R (node=node@entry=0x40f9f80, detail=detail@entry=0, instance=instance@entry=0x3956ad0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc945e5060) at ../gobject/gsignal.c:3873
#21 0x00007f52b0d2f8e6 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc945e51e0) at ../gobject/gsignal.c:3555
#23 0x00007f52b067cb4a in _gtk_action_emit_activate (action=0x3956ad0 [gtkmm__GtkAction]) at /usr/src/debug/gtk-2.24.33/gtk/gtkaction.c:795
#27 0x00007f52b0d2fa5f in <emit signal ??? on instance 0x5bb6760 [GtkImageMenuItem]> (instance=instance@entry=0x5bb6760, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3612
#24 0x00007f52b0d154f0 in g_closure_invoke (closure=closure@entry=0x4114eb0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffc945e5470, invocation_hint=invocation_hint@entry=0x7ffc945e53f0) at ../gobject/gclosure.c:832
#25 0x00007f52b0d285f5 in signal_emit_unlocked_R (node=node@entry=0x4114f10, detail=detail@entry=0, instance=instance@entry=0x5bb6760, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc945e5470) at ../gobject/gsignal.c:3732
#26 0x00007f52b0d2f8e6 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc945e55f0) at ../gobject/gsignal.c:3555
#28 0x00007f52b0854b24 in IA__gtk_widget_activate (widget=0x5bb6760 [GtkImageMenuItem]) at /usr/src/debug/gtk-2.24.33/gtk/gtkwidget.c:5041
#29 0x00007f52b074e385 in IA__gtk_menu_shell_activate_item (menu_shell=0x5b9d670 [GtkMenu], menu_item=0x5bb6760 [GtkImageMenuItem], force_deactivate=<optimized out>) at /usr/src/debug/gtk-2.24.33/gtk/gtkmenushell.c:1278
#30 0x00007f52b074e698 in gtk_menu_shell_button_release (widget=0x5b9d670 [GtkMenu], event=<optimized out>) at /usr/src/debug/gtk-2.24.33/gtk/gtkmenushell.c:703
#35 0x00007f52b0d2fa5f in <emit signal ??? on instance 0x5b9d670 [GtkMenu]> (instance=instance@entry=0x5b9d670, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3612
#31 0x00007f52b0738457 in _gtk_marshal_BOOLEAN__BOXED (closure=0x4102720, return_value=0x7ffc945e58f0, n_param_values=<optimized out>, param_values=0x7ffc945e5950, invocation_hint=<optimized out>, marshal_data=<optimized out>) at /usr/src/debug/gtk-2.24.33/gtk/gtkmarshalers.c:84
#32 0x00007f52b0d154f0 in g_closure_invoke (closure=closure@entry=0x4102720, return_value=return_value@entry=0x7ffc945e58f0, n_param_values=2, param_values=param_values@entry=0x7ffc945e5950, invocation_hint=invocation_hint@entry=0x7ffc945e58d0) at ../gobject/gclosure.c:832
#33 0x00007f52b0d28a75 in signal_emit_unlocked_R (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x5b9d670, emission_return=emission_return@entry=0x7ffc945e5a40, instance_and_params=instance_and_params@entry=0x7ffc945e5950) at ../gobject/gsignal.c:3841
#34 0x00007f52b0d2f21e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc945e5af0) at ../gobject/gsignal.c:3565
#36 0x00007f52b08583cc in gtk_widget_event_internal (widget=0x5b9d670 [GtkMenu], event=0x3d8f420) at /usr/src/debug/gtk-2.24.33/gtk/gtkwidget.c:5010
#37 0x00007f52b073c774 in IA__gtk_propagate_event (widget=0x5b9d670 [GtkMenu], event=0x3d8f420) at /usr/src/debug/gtk-2.24.33/gtk/gtkmain.c:2503
#38 0x00007f52b073dc9b in IA__gtk_main_do_event (event=0x3d8f420) at /usr/src/debug/gtk-2.24.33/gtk/gtkmain.c:1698
#39 IA__gtk_main_do_event (event=<optimized out>) at /usr/src/debug/gtk-2.24.33/gtk/gtkmain.c:1503
#40 0x00007f52b0b5d1de in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at x11/gdkevents-x11.c:2425
#41 0x00007f52b0c14f96 in g_main_dispatch (context=0x4095860) at ../glib/gmain.c:3460
#42 g_main_context_dispatch (context=context@entry=0x4095860) at ../glib/gmain.c:4200
#43 0x00007f52b0c15358 in g_main_context_iterate (context=0x4095860, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4276
#44 0x00007f52b0c1560f in g_main_loop_run (loop=loop@entry=0x44dcad0) at ../glib/gmain.c:4479
#45 0x00007f52b0737b17 in IA__gtk_main () at /usr/src/debug/gtk-2.24.33/gtk/gtkmain.c:1270
#46 0x00007f52b118d381 in Gtkmm2ext::UI::run(Receiver&) (this=0x4083ce0, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:309
#47 0x0000000000d9980f in main(int, char**) (argc=1, argv=0x7ffc945e6438) at ../gtk2_ardour/main.cc:469
(gdb)
Edit:
Console
bind txt domain [gtk2_ardour7] to /usr/local/share/ardour7/locale
Ardour7.3.0 (built using 7.3 and GCC version 13.0.1 20230314 (experimental) [revision 42630fadbe248717859d61c0244c821c32b4e52c])
Ardour: [INFO]: Your system is configured to limit Ardour to 100000 open files
Ardour: [INFO]: Loading system configuration file /home/joachim/git/ardour/system_config
Ardour: [INFO]: Loading user configuration file /home/joachim/.config/ardour7/config
Ardour: [INFO]: CPU vendor: GenuineIntel
Ardour: [INFO]: AVX capable processor
Ardour: [INFO]: AVX with FMA capable processor
Ardour: [INFO]: CPU brand: Intel(R) Core(TM) i5-4670 CPU @ 3.40GHz
Ardour: [INFO]: Using AVX and FMA optimized routines
Ardour: [INFO]: Loading plugin meta data file /home/joachim/git/ardour/share/plugin_metadata/plugin_tags
Ardour: [INFO]: Loading plugin statistics file /home/joachim/.config/ardour7/plugin_metadata/plugin_stats
Ardour: [INFO]: add_lrdf_data '/home/joachim/.config/ardour7/rdf:/home/joachim/git/ardour/share/rdf:/home/joachim/git/ardour/build/rdf:/home/joachim/git/ardour/gtk2_ardour/rdf:/home/joachim/git/ardour/build/gtk2_ardour/rdf:/usr/local/share/ladspa/rdf:/usr/share/ladspa/rdf'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/ladspa.rdfs'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/tap_reverb.rdf'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/guitarix.rdf'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/swh-aux.rdf'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/swh-plugins.rdf'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/cmt.rdf'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/blop.rdf'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/tap-plugins.rdf'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/guitarix_amp.rdf'
Ardour: [INFO]: read rdf_file 'file:///usr/share/ladspa/rdf/swh-scales.rdf'
Ardour: [INFO]: Loading 454 MIDI patches from /home/joachim/git/ardour/share/patchfiles
Ardour: [INFO]: Loading default ui configuration file /home/joachim/git/ardour/build/gtk2_ardour/default_ui_config
Ardour: [INFO]: Loading user ui configuration file /home/joachim/.config/ardour7/ui_config
Ardour: [INFO]: Loading color file /home/joachim/git/ardour/gtk2_ardour/themes/dark-ardour.colors
Ardour: [INFO]: Loading ui configuration file /home/joachim/git/ardour/build/gtk2_ardour/clearlooks.rc
Ardour: [INFO]: Loading bindings from /home/joachim/git/ardour/build/gtk2_ardour/ardour.keys
Loading ui configuration file /home/joachim/git/ardour/build/gtk2_ardour/clearlooks.rc
Found nothing along /home/joachim/.config/ardour7/templates:/home/joachim/git/ardour/share/templates:/home/joachim/git/ardour/build/templates:/home/joachim/git/ardour/gtk2_ardour/templates:/home/joachim/git/ardour/build/gtk2_ardour/templates
Set cursor set to default
locate to 0 took 124 usecs for 1 tracks = 124 per track
locate to 0 took 269 usecs for 1 tracks = 269 per track
Butler drops pool trash
Graph::drop_threads() sema-counts: 0, 0, 1
-- List Of Registered Controllables
CTRL: transport auto loop
CTRL: transport goto end
CTRL: transport goto start
CTRL: transport stop
CTRL: transport roll
CTRL: transport play selection
CTRL: transport rec-enable
Total number of registered controllables: 7
Edit2:
If I use Alsa backend instead of JACK, exit is no problem.
P.S.: Thank you for making this otherwise really great program!