View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004457 | ardour | bugs | public | 2011-11-07 15:40 | 2020-04-19 20:15 |
| Reporter | acolomb | Assigned To | cth103 | ||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | closed | Resolution | fixed | ||
| Target Version | 3.0-beta2 | ||||
| Summary | 0004457: Deadlock after changing Listen Position | ||||
| Description | I'm not sure exactly how it happened, but I was playing aroung with the new SiP/AFL/PFL radio buttons and the preferences window, then Ardour stopped updating its GUI. I think the last thing I did was right-click on the AFL button. I'll attach a backtrace. | ||||
| Tags | No tags attached. | ||||
|
2011-11-07 15:40
|
backtrace-freeze.txt (34,159 bytes)
thread apply all bt
Thread 24 (Thread 0x7fffe0c3c820 (LWP 8740)):
#0 0x00007fffec88689d in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#1 0x00007ffff2c02da2 in g_usleep () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff6de3666 in ARDOUR::AudioEngine::meter_thread (this=0x29e4000) at ../libs/ardour/audioengine.cc:692
#3 0x00007ffff6e02d00 in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator() (this=0x7fffd2b3ad40, p=0x29e4000) at /usr/include/boost/bind/mem_fn_template.hpp:49
#4 0x00007ffff6dfe350 in boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0> (this=0x7fffd2b3ad50, f=..., a=...)
at /usr/include/boost/bind/bind.hpp:253
#5 0x00007ffff6df9edf in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator() (this=0x7fffd2b3ad40)
at /usr/include/boost/bind/bind_template.hpp:20
#6 0x00007ffff6df52bc in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > > >::operator() (this=0x7fffd2b3ad40)
at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#7 0x00007ffff6df0c16 in sigc::internal::slot_call0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >, void>::call_it (rep=0x7fffd2b3ad10)
at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#8 0x00007ffff372e94d in operator() (this=0x7fffd3062960) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#9 (anonymous namespace)::call_thread_entry_slot (data=0x7fffd3062960) at thread.cc:44
#10 0x00007ffff2bff986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#12 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()
Thread 23 (Thread 0x7fffd65c8700 (LWP 8739)):
#0 0x00007fffec5be723 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1 0x00007ffff2bda6b8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff2bdaee2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff4cd613f in BaseUI::main_thread (this=0x3fee090) at ../libs/pbd/base_ui.cc:77
#4 0x00007ffff4cd74e9 in sigc::bound_mem_functor0<void, BaseUI>::operator() (this=0x3fee738) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#5 0x00007ffff4cd734e in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator() (this=0x3fee730) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#6 0x00007ffff4cd70bf in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it (rep=0x3fee700) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#7 0x00007ffff372e94d in operator() (this=0x3fee240) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#8 (anonymous namespace)::call_thread_entry_slot (data=0x3fee240) at thread.cc:44
#9 0x00007ffff2bff986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#11 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()
Thread 22 (Thread 0x7fffe0cbe820 (LWP 8738)):
#0 0x00007fffec5be723 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1 0x00007ffff6e607ff in ARDOUR::Butler::thread_work (this=0x3e83b00) at ../libs/ardour/butler.cc:153
#2 0x00007ffff6e60759 in ARDOUR::Butler::_thread_work (arg=0x3e83b00) at ../libs/ardour/butler.cc:137
#3 0x00007ffff4d0bf0c in fake_thread_start (arg=0x3f261d0) at ../libs/pbd/pthread_utils.cc:81
#4 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#5 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6 0x0000000000000000 in ?? ()
Thread 21 (Thread 0x7fffe0d40700 (LWP 8737)):
#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1 0x00007ffff6f406cc in PBD::ProcessSemaphore::wait (this=0x3e85178) at /usr/local/src/ardour3/libs/pbd/pbd/semutils.h:41
#2 0x00007ffff6f3ebaa in ARDOUR::Graph::run_one (this=0x3e850b0) at ../libs/ardour/graph.cc:433
#3 0x00007ffff6f3ef76 in ARDOUR::Graph::helper_thread (this=0x3e850b0) at ../libs/ardour/graph.cc:483
#4 0x00007ffff6f44776 in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7fffe0d3fc08, p=0x3e850b0) at /usr/include/boost/bind/mem_fn_template.hpp:49
#5 0x00007ffff6f44182 in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7fffe0d3fc18, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#6 0x00007ffff6f43d6d in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7fffe0d3fc08) at /usr/include/boost/bind/bind_template.hpp:20
#7 0x00007ffff6f438dd in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >, void>::invoke (function_obj_ptr=...)
at /usr/include/boost/function/function_template.hpp:153
#8 0x00000000013a6c92 in boost::function0<void>::operator() (this=0x7fffe0d3fc00) at /usr/include/boost/function/function_template.hpp:1013
#9 0x00007ffff6de63f1 in ARDOUR::AudioEngine::_start_process_thread (arg=0x3e95540) at ../libs/ardour/audioengine.cc:1476
#10 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#11 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()
Thread 20 (Thread 0x7fffe0dc1700 (LWP 8736)):
#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1 0x00007ffff6f406cc in PBD::ProcessSemaphore::wait (this=0x3e85178) at /usr/local/src/ardour3/libs/pbd/pbd/semutils.h:41
---Type <return> to continue, or q <return> to quit---
#2 0x00007ffff6f3ebaa in ARDOUR::Graph::run_one (this=0x3e850b0) at ../libs/ardour/graph.cc:433
#3 0x00007ffff6f3ef76 in ARDOUR::Graph::helper_thread (this=0x3e850b0) at ../libs/ardour/graph.cc:483
#4 0x00007ffff6f44776 in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7fffe0dc0c08, p=0x3e850b0) at /usr/include/boost/bind/mem_fn_template.hpp:49
#5 0x00007ffff6f44182 in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7fffe0dc0c18, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#6 0x00007ffff6f43d6d in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7fffe0dc0c08) at /usr/include/boost/bind/bind_template.hpp:20
#7 0x00007ffff6f438dd in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >, void>::invoke (function_obj_ptr=...)
at /usr/include/boost/function/function_template.hpp:153
#8 0x00000000013a6c92 in boost::function0<void>::operator() (this=0x7fffe0dc0c00) at /usr/include/boost/function/function_template.hpp:1013
#9 0x00007ffff6de63f1 in ARDOUR::AudioEngine::_start_process_thread (arg=0x3e95540) at ../libs/ardour/audioengine.cc:1476
#10 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#11 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()
Thread 19 (Thread 0x7fffe0e42700 (LWP 8735)):
#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1 0x00007ffff6f406cc in PBD::ProcessSemaphore::wait (this=0x3e85178) at /usr/local/src/ardour3/libs/pbd/pbd/semutils.h:41
#2 0x00007ffff6f3ebaa in ARDOUR::Graph::run_one (this=0x3e850b0) at ../libs/ardour/graph.cc:433
#3 0x00007ffff6f3f1a8 in ARDOUR::Graph::main_thread (this=0x3e850b0) at ../libs/ardour/graph.cc:522
#4 0x00007ffff6f44776 in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (this=0x7fffe0e41c08, p=0x3e850b0) at /usr/include/boost/bind/mem_fn_template.hpp:49
#5 0x00007ffff6f44182 in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (this=0x7fffe0e41c18, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#6 0x00007ffff6f43d6d in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (this=0x7fffe0e41c08) at /usr/include/boost/bind/bind_template.hpp:20
#7 0x00007ffff6f438dd in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >, void>::invoke (function_obj_ptr=...)
at /usr/include/boost/function/function_template.hpp:153
#8 0x00000000013a6c92 in boost::function0<void>::operator() (this=0x7fffe0e41c00) at /usr/include/boost/function/function_template.hpp:1013
#9 0x00007ffff6de63f1 in ARDOUR::AudioEngine::_start_process_thread (arg=0x3e95540) at ../libs/ardour/audioengine.cc:1476
#10 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#11 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()
Thread 18 (Thread 0x7fffe0ec3700 (LWP 8734)):
#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1 0x00007ffff6f406cc in PBD::ProcessSemaphore::wait (this=0x3e851b8) at /usr/local/src/ardour3/libs/pbd/pbd/semutils.h:41
#2 0x00007ffff6f4017e in ARDOUR::Graph::routes_no_roll (this=0x3e850b0, nframes=2048, start_frame=163840, end_frame=165888, non_rt_pending=false, declick=0) at ../libs/ardour/graph.cc:625
#3 0x00007ffff719c2d8 in ARDOUR::Session::no_roll (this=0x3e7c000, nframes=2048) at ../libs/ardour/session_process.cc:112
#4 0x00007ffff719cfbc in ARDOUR::Session::process_with_events (this=0x3e7c000, nframes=2048) at ../libs/ardour/session_process.cc:343
#5 0x00007ffff719c04c in ARDOUR::Session::process (this=0x3e7c000, nframes=2048) at ../libs/ardour/session_process.cc:75
#6 0x00007ffff6de2bfc in ARDOUR::AudioEngine::process_callback (this=0x29e4000, nframes=2048) at ../libs/ardour/audioengine.cc:519
#7 0x00007ffff6de2894 in ARDOUR::AudioEngine::process_thread (this=0x29e4000) at ../libs/ardour/audioengine.cc:443
#8 0x00007ffff6de2294 in ARDOUR::AudioEngine::_process_thread (arg=0x29e4000) at ../libs/ardour/audioengine.cc:352
#9 0x00007fffee71ab88 in ?? () from /usr/lib/libjack.so.0
#10 0x00007fffee72e7a0 in ?? () from /usr/lib/libjack.so.0
#11 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#12 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()
Thread 17 (Thread 0x7fffe0641700 (LWP 8730)):
#0 0x00007fffec88617d in read () at ../sysdeps/unix/syscall-template.S:82
#1 0x00007fffee73042a in ?? () from /usr/lib/libjack.so.0
#2 0x00007fffee732cf7 in ?? () from /usr/lib/libjack.so.0
#3 0x00007fffee72e7a0 in ?? () from /usr/lib/libjack.so.0
#4 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#5 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6 0x0000000000000000 in ?? ()
Thread 16 (Thread 0x7fffe06c2700 (LWP 8729)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1 0x00007fffee72ff21 in ?? () from /usr/lib/libjack.so.0
#2 0x00007fffee72b5f5 in ?? () from /usr/lib/libjack.so.0
#3 0x00007fffee72e7a0 in ?? () from /usr/lib/libjack.so.0
#4 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#5 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6 0x0000000000000000 in ?? ()
Thread 5 (Thread 0x7fffe370a700 (LWP 8717)):
---Type <return> to continue, or q <return> to quit---
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1 0x00007ffff6d74681 in ARDOUR::Analyser::work () at ../libs/ardour/analyser.cc:85
#2 0x00007ffff6d74419 in analyser_work () at ../libs/ardour/analyser.cc:49
#3 0x0000000001949a4d in sigc::pointer_functor0<void>::operator() (this=0x2839d98) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#4 0x000000000194740e in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x2839d90) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#5 0x00000000019445d5 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x2839d60) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#6 0x00007ffff372e94d in operator() (this=0x280bef0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#7 (anonymous namespace)::call_thread_entry_slot (data=0x280bef0) at thread.cc:44
#8 0x00007ffff2bff986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#10 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()
Thread 4 (Thread 0x7fffe3f0b700 (LWP 8716)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1 0x00007ffff721965d in peak_thread_work () at ../libs/ardour/source_factory.cc:68
#2 0x0000000001949a4d in sigc::pointer_functor0<void>::operator() (this=0x28376c8) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#3 0x000000000194740e in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x28376c0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#4 0x00000000019445d5 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x2837690) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#5 0x00007ffff372e94d in operator() (this=0x2800240) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#6 (anonymous namespace)::call_thread_entry_slot (data=0x2800240) at thread.cc:44
#7 0x00007ffff2bff986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#9 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()
Thread 3 (Thread 0x7fffe470c700 (LWP 8715)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1 0x00007ffff721965d in peak_thread_work () at ../libs/ardour/source_factory.cc:68
#2 0x0000000001949a4d in sigc::pointer_functor0<void>::operator() (this=0x283a5a8) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#3 0x000000000194740e in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x283a5a0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#4 0x00000000019445d5 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x283a570) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#5 0x00007ffff372e94d in operator() (this=0x280b100) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#6 (anonymous namespace)::call_thread_entry_slot (data=0x280b100) at thread.cc:44
#7 0x00007ffff2bff986 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#9 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()
Thread 2 (Thread 0x7fffe4f0d700 (LWP 8714)):
#0 0x00007fffec59a1cd in nanosleep () at ../sysdeps/unix/syscall-template.S:82
#1 0x00007fffec5c3584 in usleep (useconds=<optimized out>) at ../sysdeps/unix/sysv/linux/usleep.c:33
#2 0x00007ffff72539c7 in gui_event_loop (ptr=0x0) at ../libs/ardour/vstfxwin.cc:382
#3 0x00007fffec87eb40 in start_thread (arg=<optimized out>) at pthread_create.c:304
#4 0x00007fffec5c936d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7ffff7f169a0 (LWP 8699)):
#0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1 0x00007fffec881329 in _L_lock_926 () from /lib/x86_64-linux-gnu/libpthread.so.0
#2 0x00007fffec88114b in __pthread_mutex_lock (mutex=0x2974170) at pthread_mutex_lock.c:61
#3 0x000000000133c780 in Glib::Mutex::Lock::Lock (this=0x7fffffffbe20, mutex=...) at /usr/include/glibmm-2.4/glibmm/thread.h:806
#4 0x00007ffff70d5c51 in ARDOUR::Route::listen_position_changed (this=0x7fffd2aba880) at ../libs/ardour/route.cc:2925
#5 0x00007ffff7126303 in ARDOUR::Session::listen_position_changed (this=0x3e7c000) at ../libs/ardour/session.cc:4026
#6 0x00007ffff71bc8e3 in ARDOUR::Session::config_changed (this=0x3e7c000, p=..., ours=false) at ../libs/ardour/session_state.cc:3575
#7 0x00007ffff7158307 in boost::_mfi::mf2<void, ARDOUR::Session, std::string, bool>::operator() (this=0x7fffd302e3f0, p=0x3e7c000, a1=..., a2=false) at /usr/include/boost/bind/mem_fn_template.hpp:280
#8 0x00007ffff714f4ab in boost::_bi::list3<boost::_bi::value<ARDOUR::Session*>, boost::arg<1>, boost::_bi::value<bool> >::operator()<boost::_mfi::mf2<void, ARDOUR::Session, std::string, bool>, boost::_bi::list1<std::string&> > (
this=0x7fffd302e400, f=..., a=...) at /usr/include/boost/bind/bind.hpp:392
#9 0x00007ffff7148548 in boost::_bi::bind_t<void, boost::_mfi::mf2<void, ARDOUR::Session, std::string, bool>, boost::_bi::list3<boost::_bi::value<ARDOUR::Session*>, boost::arg<1>, boost::_bi::value<bool> > >::operator()<std::string> (
this=0x7fffd302e3f0, a1=...) at /usr/include/boost/bind/bind_template.hpp:32
#10 0x00007ffff7141dbd in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf2<void, ARDOUR::Session, std::string, bool>, boost::_bi::list3<boost::_bi::value<ARDOUR::Session*>, boost::arg<1>, boost::_bi::value<bool> > >, void, std::string>::invoke (function_obj_ptr=..., a0=...) at /usr/include/boost/function/function_template.hpp:153
#11 0x000000000139d838 in boost::function1<void, std::string>::operator() (this=0x7fffd2ab6c48, a0=...) at /usr/include/boost/function/function_template.hpp:1013
#12 0x00000000013a256e in boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection co---Type <return> to continue, or q <return> to quit---
nst&, std::string)>, boost::signals2::mutex>::slot_invoker::m_invoke(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > const&, boost::signals2::detail::void_type const*) const (this=0x7fffffffc3f0, connectionBody=...) at /usr/include/boost/signals2/detail/signal_template.hpp:360
#13 0x000000000139ca9e in boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker::operator()(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > const&) const (this=0x7fffffffc3f0, connectionBody=...) at /usr/include/boost/signals2/detail/signal_template.hpp:345
#14 0x0000000001395b73 in boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> >::dereference() const (this=0x7fffffffc230) at /usr/include/boost/signals2/detail/slot_call_iterator.hpp:82
#15 0x000000000138f206 in boost::iterator_core_access::dereference<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > const&) (f=...) at /usr/include/boost/iterator/iterator_facade.hpp:517
#16 0x0000000001389394 in boost::iterator_facade<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> >, boost::signals2::detail::void_type, boost::single_pass_traversal_tag, boost::signals2::detail::void_type const&, long>::operator*() const (this=0x7fffffffc230) at /usr/include/boost/iterator/iterator_facade.hpp:643
#17 0x0000000001384c29 in boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> >) const (this=0x27ff9f0, first=..., last=...) at /usr/include/boost/signals2/optional_last_value.hpp:55
#18 0x000000000137f3cd in boost::signals2::detail::combiner_invoker<void>::operator()<boost::signals2::optional_last_value<void>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >(boost::signals2::optional_last_value<void>&, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::slot_invoker, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot1<void, std::string, boost::function<void (std::string)> >, boost::signals2::mutex> >) const (
this=0x7fffffffc4af, combiner=..., first=..., last=...) at /usr/include/boost/signals2/detail/result_type_wrapper.hpp:64
#19 0x000000000137a851 in boost::signals2::detail::signal1_impl<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::operator()(std::string) (this=0x2813ba0, arg1=...) at /usr/include/boost/signals2/detail/signal_template.hpp:246
#20 0x0000000001375217 in boost::signals2::signal1<void, std::string, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::string)>, boost::function<void (boost::signals2::connection const&, std::string)>, boost::signals2::mutex>::operator()(std::string) (this=0x2812fe8, arg1=...) at /usr/include/boost/signals2/detail/signal_template.hpp:692
#21 0x0000000001371433 in PBD::Signal1<void, std::string, boost::signals2::optional_last_value<void> >::operator() (this=0x2812fe8, arg1=...) at /usr/local/src/ardour3/libs/pbd/pbd/signals.h:161
#22 0x00000000018880ec in ARDOUR::RCConfiguration::set_listen_position (this=0x2812f60, val=ARDOUR::AfterFaderListen) at /usr/local/src/ardour3/libs/ardour/ardour/rc_configuration_vars.h:88
#23 0x00000000018860e0 in MonitorSection::solo_use_afl (this=0x4550800) at ../gtk2_ardour/monitor_section.cc:757
#24 0x000000000188b1ed in sigc::bound_mem_functor0<void, MonitorSection>::operator() (this=0x456c798) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#25 0x000000000188ac3c in sigc::adaptor_functor<sigc::bound_mem_functor0<void, MonitorSection> >::operator() (this=0x456c790) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#26 0x000000000188a48f in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, MonitorSection>, void>::call_it (rep=0x456c760) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#27 0x00007ffff3739638 in operator() (this=0x456c578) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:440
#28 Glib::SignalProxyNormal::slot0_void_callback (self=<optimized out>, data=0x456c570) at signalproxy.cc:95
#29 0x00007ffff34ac804 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#30 0x00007ffff34be955 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007ffff34c7e11 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#32 0x00007ffff34c7fb2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#33 0x00007ffff25cd403 in _gtk_action_emit_activate (action=0x453f010) at /build/buildd-gtk+2.0_2.24.7-1-amd64-huURlY/gtk+2.0-2.24.7/gtk/gtkaction.c:794
#34 0x000000000134683a in ArdourButton::on_button_release_event (this=0x4550e88, ev=0x48282e0) at ../gtk2_ardour/ardour_button.cc:443
#35 0x00007ffff06f6ef3 in Gtk::Widget_Class::button_release_event_callback (self=0x45415a0, p0=0x48282e0) at widget.cc:4673
---Type <return> to continue, or q <return> to quit---
#36 0x00007ffff268f1a8 in _gtk_marshal_BOOLEAN__BOXED (closure=0x266f350, return_value=0x7fffffffcc90, n_param_values=<optimized out>, param_values=0x481c350, invocation_hint=<optimized out>, marshal_data=<optimized out>)
at /build/buildd-gtk+2.0_2.24.7-1-amd64-huURlY/gtk+2.0-2.24.7/gtk/gtkmarshalers.c:86
#37 0x00007ffff34ac804 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#38 0x00007ffff34be5bf in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x00007ffff34c7be3 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x00007ffff34c7fb2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#41 0x00007ffff27a8051 in gtk_widget_event_internal (widget=0x45415a0, event=0x48282e0) at /build/buildd-gtk+2.0_2.24.7-1-amd64-huURlY/gtk+2.0-2.24.7/gtk/gtkwidget.c:4984
#42 0x00007ffff268d363 in IA__gtk_propagate_event (widget=0x45415a0, event=0x48282e0) at /build/buildd-gtk+2.0_2.24.7-1-amd64-huURlY/gtk+2.0-2.24.7/gtk/gtkmain.c:2489
#43 0x00007ffff268d6c3 in IA__gtk_main_do_event (event=0x48282e0) at /build/buildd-gtk+2.0_2.24.7-1-amd64-huURlY/gtk+2.0-2.24.7/gtk/gtkmain.c:1684
#44 0x00007ffff22f91dc in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/buildd-gtk+2.0_2.24.7-1-amd64-huURlY/gtk+2.0-2.24.7/gdk/x11/gdkevents-x11.c:2377
#45 0x00007ffff2bda1ad in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x00007ffff2bda9a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#47 0x00007ffff2bdaee2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007ffff268c717 in IA__gtk_main () at /build/buildd-gtk+2.0_2.24.7-1-amd64-huURlY/gtk+2.0-2.24.7/gtk/gtkmain.c:1256
#49 0x00007ffff516d978 in Gtkmm2ext::UI::run (this=0x2600c20, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:268
#50 0x00000000017a5b9f in main (argc=1, argv=0x7fffffffd3a8) at ../gtk2_ardour/main.cc:557
(gdb)
|
|
|
Do you know which SVN revision you were on at the time? Is it reproducible? |
|
|
IIRC it was SVN r10470. I just tried to reproduce it in r10474, but I could not provoke the deadlock. However, I saw the same behavior as when the deadlock occurred: Open the preferences window, deselect "Solo controls are Listen controls" and set Listen Position to PFL. I'm not quite sure, but I remember the AFL/PFL preference becoming insensitive when deactivating the former option? Anyway it's still active and from this situation, clicking the AFL button in the monitor section actually activates PFL. It also works the other way round. The button clicked is ignored and instead whichever (AFL/PFL) was active in the preferences becomes active. There is probably still a little thinko in the radio button code, which might have lead to the deadlock. I hope Paul can recognize the held mutex from the backtrace and figure out how the deadlock was possible. |
|
|
The deadlock is due to the process thread's triggering not working properly, so that it never completes and the next time the GUI tries to take the process lock it deadlocks. I see what you mean about the AFL/PFL button confusion. |
|
|
I can not reproduce this issue anymore. The fix to 0004484 works fine and the deadlock never occurred again during my tests. Please close the issue unless you think the "triggering" still needs fixing. |
|
|
Thanks. |
|
|
Issue has been closed automatically, by Trigger Close Plugin. Feel free to re-open with additional information if you think the issue is not resolved. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2011-11-07 15:40 | acolomb | New Issue | |
| 2011-11-07 15:40 | acolomb | File Added: backtrace-freeze.txt | |
| 2011-11-07 16:00 | cth103 | cost | => 0.00 |
| 2011-11-07 16:00 | cth103 | Target Version | => 3.0-beta1 |
| 2011-11-08 00:01 | cth103 | Note Added: 0011931 | |
| 2011-11-08 00:01 | cth103 | Status | new => feedback |
| 2011-11-08 09:38 | acolomb | Note Added: 0011940 | |
| 2011-11-08 14:17 | cth103 | Note Added: 0011950 | |
| 2011-11-15 15:48 | cth103 | Target Version | 3.0-beta1 => 3.0-beta2 |
| 2011-11-17 21:17 | cth103 | Relationship added | related to 0004484 |
| 2011-11-21 22:55 | acolomb | Note Added: 0012170 | |
| 2011-11-21 23:11 | cth103 | Note Added: 0012173 | |
| 2011-11-21 23:11 | cth103 | Status | feedback => resolved |
| 2011-11-21 23:11 | cth103 | Resolution | open => fixed |
| 2011-11-21 23:11 | cth103 | Assigned To | => cth103 |
| 2020-04-19 20:15 | system | Note Added: 0022826 | |
| 2020-04-19 20:15 | system | Status | resolved => closed |