View Issue Details

IDCategoryLast Update
0007036bugs2016-09-22 12:23
ReporteranemalAssigned To 
Reproducibilityalways 
Status confirmedResolutionopen 
Platformx86_64OSGentooOS Version13.0
Product Version5.3 
Fixed in Version 
Summary0007036: "Remove last capture" causes ardour to freeze
Description"Remove last capture" opens the confirmation dialog.
On clicking "yes" causes ardour to freeze.
The confirmation dialog is still visible.
However, ardour can immediately be killed with SIGTERM.
After recovering from crash, the recorded region is still there.
Steps To Reproduce1. Record something
2. Choose "Remove last capture" from the menu or press appropriate key binding.
3. Click on "yes"
TagsNo tags attached.

Activities

timbyr

2016-09-19 07:36

developer   ~0018683

I can't reproduce this with 5.3(official linux 32-bit build) or 5.3.138 build.

Are you using an official build from ardour.org?

Is there anything else that you think might be relevant to reproduce this issue?

I was using 10 or so tracks and recording for a few minutes, then stopping the transport and selecting remove last capture from the menu and it is always successful here(unless transport is rolling)

anemal

2016-09-19 12:46

reporter   ~0018690

Since I'm on Gentoo Ardour is built from source.
The exact version is 5.3.0 downloaded from (http://fossies.org/linux/misc/Ardour-5.3.0.tar.bz2)
It is built for 64bit with the cpuflags x86_3dnow, x86_mmx and x86_sse.

I tried to study the output of ardour in the console, when the freeze occurs. However, there is no message.
But I found that it is somehow related to the session I was using:
I created a new empty session and in this new session, the error did not occur. Even after loading some of the same plugins as in the old session, there was no error.
However, in the old session it freezes again.
Then, in this old session I deleted all plugins. There was nothing left except of the tracks, busses and regions. But still it froze after removing the last capture.
Does it help to provide the *.ardour file?

Here is the full dependency graph:

 * dependency graph for media-sound/ardour-5.3
 `-- media-sound/ardour-5.3 ~amd64
   `-- dev-cpp/glibmm-2.46.4 (>=dev-cpp/glibmm-2.32.0) amd64
   `-- dev-cpp/gtkmm-2.24.4-r3 (>=dev-cpp/gtkmm-2.16) amd64
   `-- dev-cpp/libgnomecanvasmm-2.26.0-r1 (>=dev-cpp/libgnomecanvasmm-2.26) amd64
   `-- dev-libs/boost-1.56.0-r1 (dev-libs/boost) amd64
   `-- dev-libs/glib-2.46.2-r3 (>=dev-libs/glib-2.10.1) amd64
   `-- dev-libs/libsigc++-2.6.2 (dev-libs/libsigc++) amd64
   `-- dev-libs/libxml2-2.9.4 (>=dev-libs/libxml2-2.6) amd64
   `-- dev-libs/libxslt-1.1.29 (dev-libs/libxslt) amd64
   `-- gnome-base/libgnomecanvas-2.30.3-r1 (>=gnome-base/libgnomecanvas-2) amd64
   `-- media-libs/alsa-lib-1.1.2 (media-libs/alsa-lib) ~amd64
   `-- media-libs/aubio-0.4.1 (media-libs/aubio) amd64
   `-- media-libs/flac-1.3.1-r1 (media-libs/flac) amd64
   `-- media-libs/freetype-2.6.3-r1 (media-libs/freetype) amd64
   `-- media-libs/libart_lgpl-2.3.21-r2 (media-libs/libart_lgpl) amd64
   `-- media-libs/liblo-0.28 (media-libs/liblo) ~amd64
   `-- media-libs/liblrdf-0.5.0 (>=media-libs/liblrdf-0.4.0-r20) amd64
   `-- media-libs/libsamplerate-0.1.8-r1 (>=media-libs/libsamplerate-0.1) amd64
   `-- media-libs/libsndfile-1.0.26 (>=media-libs/libsndfile-1.0.18) amd64
   `-- media-libs/libsoundtouch-1.9.2 (>=media-libs/libsoundtouch-1.6.0) ~amd64
   `-- media-libs/raptor-2.0.14 (media-libs/raptor) amd64
   `-- media-libs/rubberband-1.8.1-r1 (>=media-libs/rubberband-1.6.0) ~amd64
   `-- media-libs/taglib-1.9.1-r2 (>=media-libs/taglib-1.7) amd64
   `-- media-libs/vamp-plugin-sdk-2.6-r1 (media-libs/vamp-plugin-sdk) ~amd64
   `-- net-misc/curl-7.50.3 (net-misc/curl) amd64
   `-- sci-libs/fftw-3.3.4 (sci-libs/fftw) amd64 [threads]
   `-- virtual/libusb-0-r2 (virtual/libusb) amd64
   `-- x11-libs/cairo-1.14.6 (x11-libs/cairo) amd64
   `-- x11-libs/gtk+-2.24.30 (>=x11-libs/gtk+-2.8.1) amd64
   `-- x11-libs/pango-1.38.1 (x11-libs/pango) amd64
   `-- virtual/jack-0 (virtual/jack) amd64
   `-- media-libs/slv2-0.6.6 (>=media-libs/slv2-0.6.1) amd64
   `-- media-libs/lilv-0.22.0 (media-libs/lilv) ~amd64
   `-- media-libs/sratom-0.4.6 (media-libs/sratom) amd64
   `-- dev-libs/sord-0.14.0 (dev-libs/sord) ~amd64
   `-- media-libs/suil-0.8.2 (>=media-libs/suil-0.6.10) ~amd64
   `-- media-libs/lv2-1.12.0 (>=media-libs/lv2-1.4.0) ~amd64
   `-- dev-lang/python-2.7.10-r1 (>=dev-lang/python-2.7.5-r2) amd64 [threads(+)]
   `-- media-sound/jack-audio-connection-kit-0.121.3-r1 (>=media-sound/jack-audio-connection-kit-0.120) amd64
   `-- sys-devel/gettext-0.19.7 (sys-devel/gettext) amd64
   `-- virtual/pkgconfig-0-r1 (virtual/pkgconfig) amd64
   `-- app-doc/doxygen-1.8.11-r2 (app-doc/doxygen) amd64 [dot]

timbyr

2016-09-19 13:33

developer   ~0018691

Can you please try to reproduce the issue with a nightly build from nightly.ardour.org to eliminate the possibility that it is an issue with your build.

If you are still able to reproduce with a nightly build then yes, please attach the session file to this report so we can try to reproduce it.

anemal

2016-09-19 14:51

reporter  

mysongname.ardour (3,415,445 bytes)

anemal

2016-09-19 14:53

reporter   ~0018692

With the nightly build, after loading the session, the audio backend immediately zombifies.
I uploaded the mysongname.ardour file. For anonymity reasons I changed the variable name in line 2 and the path of my home directory.

timbyr

2016-09-20 01:24

developer   ~0018695

I can reproduce this issue using the Session you have attached with official 5.3 version(linux 32 bit) and a build of 5.3.139

On both Fedora 21 and AV Linux(2016.8.30 64-bit) There are multi-threading issues with at least one of the plugins used in this Session(gx_amp.so) and I had to disable all plugins to even get the Session to open consistently.

It looks like the version of FFTW you are using(3.3.4) is not thread safe: http://www.fftw.org/doc/Thread-safety.html so it would not surprise me if you had issues with other plugins that use that library.

But in saying that, I can reproduce the issue with Remove last capture after disabling all plugins. Ardour seems to be caught in some sort of endless loop as even after 10 minutes it didn't complete the Remove last capture operation.

I'm attaching a backtrace after sending a SIGINT in gdb while ardour is "frozen", perhaps a developer with more experience in that part of the code will see the issue.

timbyr

2016-09-20 01:26

developer  

ardour-5.3.139-bug7036-bt.txt (34,626 bytes)
[Thread 0x921d0b40 (LWP 1612) exited]
[Thread 0xa7b0bb40 (LWP 1600) exited]
actually writing state to /home/timbyr/ardour-test-sessions/test-5.3-bug7036/mysongname.tmp
renaming state to /home/timbyr/ardour-test-sessions/test-5.3-bug7036/mysongname.pending
saved state in 870.5 ms
actually writing state to /home/timbyr/ardour-test-sessions/test-5.3-bug7036/mysongname.tmp
renaming state to /home/timbyr/ardour-test-sessions/test-5.3-bug7036/mysongname.ardour
saved state in 769.2 ms
^Ccaught signal - shutting down.

Program received signal SIGINT, Interrupt.
0xb7567691 in boost::shared_ptr<ARDOUR::PlaylistSource>::~shared_ptr (this=0xbfffc360, __in_chrg=<optimized out>) at /usr/include/boost/smart_ptr/shared_ptr.hpp:328
328	template<class T> class shared_ptr
(gdb) t a a bt

Thread 39 (Thread 0xa830cb40 (LWP 1611)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in syscall () at ../sysdeps/unix/sysv/linux/i386/syscall.S:29
#2  0xffffffff in g_cond_wait () at /lib/libglib-2.0.so.0
#3  0xffffffff in Glib::Threads::Cond::wait(Glib::Threads::Mutex&) () at /lib/libglibmm-2.4.so.1
#4  0xffffffff in ArdourCanvas::WaveView::drawing_thread() () at ../libs/canvas/wave_view.cc:1565
#5  0x08923759 in sigc::pointer_functor0<void>::operator()() const (this=0xc5c59e4) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#6  0x089211d0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const (this=0xc5c59e0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#7  0x0891e370 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) (rep=0xc5c59c8) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#8  0xffffffff in call_thread_entry_slot () at /lib/libglibmm-2.4.so.1
#9  0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#10 0xffffffff in start_thread (arg=0xa830cb40) at pthread_create.c:310
#11 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 38 (Thread 0xac2ffb40 (LWP 1610)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in nanosleep () at ../sysdeps/unix/syscall-template.S:81
#2  0xffffffff in g_usleep () at /lib/libglib-2.0.so.0
#3  0xffffffff in Glib::usleep(unsigned long) () at /lib/libglibmm-2.4.so.1
#4  0xffffffff in ARDOUR::AutomationWatch::thread() (this=0xc18a0e0) at ../libs/ardour/automation_watch.cc:153
#5  0xffffffff in boost::_mfi::mf0<void, ARDOUR::AutomationWatch>::operator()(ARDOUR::AutomationWatch*) const (this=0xb1d0f30, p=0xc18a0e0) at /usr/include/boost/bind/mem_fn_template.hpp:49
#6  0xffffffff in boost::_bi::list1<boost::_bi::value<ARDOUR::AutomationWatch*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AutomationWatch>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, ARDOUR::AutomationWatch>&, boost::_bi::list0&, int) (this=0xb1d0f38, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#7  0xffffffff in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AutomationWatch>, boost::_bi::list1<boost::_bi::value<ARDOUR::AutomationWatch*> > >::operator()() (this=0xb1d0f30)
    at /usr/include/boost/bind/bind_template.hpp:20
#8  0xffffffff in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AutomationWatch>, boost::_bi::list1<boost::_bi::value<ARDOUR::AutomationWatch*> > > >::operator()() const (this=0xb1d0f30) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#9  0xffffffff in sigc::internal::slot_call0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AutomationWatch>, boost::_bi::list1<boost::_bi::value<ARDOUR::AutomationWatch*> > >, void>::call_it(sigc::internal::slot_rep*) (rep=0xb1d0f18) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#10 0xffffffff in call_thread_entry_slot () at /lib/libglibmm-2.4.so.1
#11 0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#12 0xffffffff in start_thread (arg=0xac2ffb40) at pthread_create.c:310
#13 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 37 (Thread 0xab244b40 (LWP 1609)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:187
#2  0xffffffff in ARDOUR::Session::auto_connect_thread_run() (this=0xa8bff78) at ../libs/ardour/session.cc:7060
#3  0xffffffff in ARDOUR::Session::auto_connect_thread(void*) (arg=0xa8bff78) at ../libs/ardour/session.cc:7014
#4  0xffffffff in start_thread (arg=0xab244b40) at pthread_create.c:310
#5  0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 36 (Thread 0xaaa43b40 (LWP 1608)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:187
#2  0xffffffff in ARDOUR::Session::emit_thread_run() (this=0xa8bff78) at ../libs/ardour/session_process.cc:1316
#3  0xffffffff in ARDOUR::Session::emit_thread(void*) (arg=0xa8bff78) at ../libs/ardour/session_process.cc:1305
#4  0xffffffff in start_thread (arg=0xaaa43b40) at pthread_create.c:310
#5  0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 34 (Thread 0xa6220b40 (LWP 1606)):
#0  0xffffffff in __kernel_vsyscall ()
---Type <return> to continue, or q <return> to quit---
#1  0xffffffff in poll () at ../sysdeps/unix/syscall-template.S:81
#2  0xffffffff in g_poll () at /lib/libglib-2.0.so.0
#3  0xffffffff in g_main_context_iterate.isra () at /lib/libglib-2.0.so.0
#4  0xffffffff in g_main_loop_run () at /lib/libglib-2.0.so.0
#5  0xffffffff in Glib::MainLoop::run() () at /lib/libglibmm-2.4.so.1
#6  0xffffffff in BaseUI::main_thread() (this=0xd72e1f0) at ../libs/pbd/base_ui.cc:86
#7  0xffffffff in sigc::bound_mem_functor0<void, BaseUI>::operator()() const (this=0xd72e594) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#8  0xffffffff in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator()() const (this=0xd72e590) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#9  0xffffffff in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it(sigc::internal::slot_rep*) (rep=0xd72e578) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#10 0xffffffff in call_thread_entry_slot () at /lib/libglibmm-2.4.so.1
#11 0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#12 0xffffffff in start_thread (arg=0xa6220b40) at pthread_create.c:310
#13 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 33 (Thread 0xa631fc40 (LWP 1605)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in poll () at ../sysdeps/unix/syscall-template.S:81
#2  0xffffffff in CrossThreadChannel::poll_for_request() (this=0x94abff0) at ../libs/pbd/crossthread.posix.cc:75
#3  0xffffffff in CrossThreadChannel::receive(char&, bool) (this=0x94abff0, msg=@0xa631eeaf: 0 '\000', wait=true) at ../libs/pbd/crossthread.posix.cc:96
#4  0xffffffff in ARDOUR::Butler::thread_work() (this=0x94abf88) at ../libs/ardour/butler.cc:175
#5  0xffffffff in ARDOUR::Butler::_thread_work(void*) (arg=0x94abf88) at ../libs/ardour/butler.cc:156
#6  0xffffffff in fake_thread_start(void*) (arg=0xd72e040) at ../libs/pbd/pthread_utils.cc:101
#7  0xffffffff in start_thread (arg=0xa631fc40) at pthread_create.c:310
#8  0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 32 (Thread 0xa6ad71c0 (LWP 1604)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in sem_wait@@GLIBC_2.1 () at ../sysdeps/unix/sysv/linux/i386/i486/sem_wait.S:79
#2  0xffffffff in PBD::Semaphore::wait() (this=0xc8a8898) at /home/timbyr/Data/devel/ardour/ardour-build-scripts/BUILD/master-debug-tests/libs/pbd/pbd/semutils.h:61
#3  0xffffffff in ARDOUR::Graph::restart_cycle() (this=0xc8a8828) at ../libs/ardour/graph.cc:261
#4  0xffffffff in ARDOUR::Graph::dec_ref() (this=0xc8a8828) at ../libs/ardour/graph.cc:248
#5  0xffffffff in ARDOUR::GraphNode::finish(int) (this=0xf786014, chain=1) at ../libs/ardour/graphnode.cc:71
#6  0xffffffff in ARDOUR::Graph::run_one() (this=0xc8a8828) at ../libs/ardour/graph.cc:401
#7  0xffffffff in ARDOUR::Graph::helper_thread() (this=0xc8a8828) at ../libs/ardour/graph.cc:418
#8  0xffffffff in boost::_mfi::mf0<void, ARDOUR::Graph>::operator()(ARDOUR::Graph*) const (this=0xa6ad6790, p=0xc8a8828) at /usr/include/boost/bind/mem_fn_template.hpp:49
#9  0xffffffff in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, ARDOUR::Graph>&, boost::_bi::list0&, int) (this=0xa6ad6798, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#10 0xffffffff in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator()() (this=0xa6ad6790)
    at /usr/include/boost/bind/bind_template.hpp:20
#11 0xffffffff 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(boost::detail::function::function_buffer&) (function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153
#12 0x082c9853 in boost::function0<void>::operator()() const (this=0xa6ad678c) at /usr/include/boost/function/function_template.hpp:767
#13 0xffffffff in ARDOUR::AlsaAudioBackend::alsa_process_thread(void*) (arg=0xc8b0ae0) at ../libs/backends/alsa/alsa_audiobackend.cc:1109
#14 0xffffffff in start_thread (arg=0xa6ad71c0) at pthread_create.c:310
#15 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 31 (Thread 0xa6af01c0 (LWP 1603)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in sem_wait@@GLIBC_2.1 () at ../sysdeps/unix/sysv/linux/i386/i486/sem_wait.S:79
#2  0xffffffff in PBD::Semaphore::wait() (this=0xc8a8888) at /home/timbyr/Data/devel/ardour/ardour-build-scripts/BUILD/master-debug-tests/libs/pbd/pbd/semutils.h:61
#3  0xffffffff in ARDOUR::Graph::run_one() (this=0xc8a8828) at ../libs/ardour/graph.cc:387
#4  0xffffffff in ARDOUR::Graph::helper_thread() (this=0xc8a8828) at ../libs/ardour/graph.cc:418
#5  0xffffffff in boost::_mfi::mf0<void, ARDOUR::Graph>::operator()(ARDOUR::Graph*) const (this=0xa6aef790, p=0xc8a8828) at /usr/include/boost/bind/mem_fn_template.hpp:49
---Type <return> to continue, or q <return> to quit---
#6  0xffffffff in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, ARDOUR::Graph>&, boost::_bi::list0&, int) (this=0xa6aef798, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#7  0xffffffff in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator()() (this=0xa6aef790)
    at /usr/include/boost/bind/bind_template.hpp:20
#8  0xffffffff 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(boost::detail::function::function_buffer&) (function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153
#9  0x082c9853 in boost::function0<void>::operator()() const (this=0xa6aef78c) at /usr/include/boost/function/function_template.hpp:767
#10 0xffffffff in ARDOUR::AlsaAudioBackend::alsa_process_thread(void*) (arg=0xc8b0ae0) at ../libs/backends/alsa/alsa_audiobackend.cc:1109
#11 0xffffffff in start_thread (arg=0xa6af01c0) at pthread_create.c:310
#12 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 30 (Thread 0xa6b091c0 (LWP 1602)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in sem_wait@@GLIBC_2.1 () at ../sysdeps/unix/sysv/linux/i386/i486/sem_wait.S:79
#2  0xffffffff in PBD::Semaphore::wait() (this=0xc8a8888) at /home/timbyr/Data/devel/ardour/ardour-build-scripts/BUILD/master-debug-tests/libs/pbd/pbd/semutils.h:61
#3  0xffffffff in ARDOUR::Graph::run_one() (this=0xc8a8828) at ../libs/ardour/graph.cc:387
#4  0xffffffff in ARDOUR::Graph::main_thread() (this=0xc8a8828) at ../libs/ardour/graph.cc:457
#5  0xffffffff in boost::_mfi::mf0<void, ARDOUR::Graph>::operator()(ARDOUR::Graph*) const (this=0xa6b08790, p=0xc8a8828) at /usr/include/boost/bind/mem_fn_template.hpp:49
#6  0xffffffff in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, ARDOUR::Graph>&, boost::_bi::list0&, int) (this=0xa6b08798, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#7  0xffffffff in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator()() (this=0xa6b08790)
    at /usr/include/boost/bind/bind_template.hpp:20
#8  0xffffffff 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(boost::detail::function::function_buffer&) (function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153
#9  0x082c9853 in boost::function0<void>::operator()() const (this=0xa6b0878c) at /usr/include/boost/function/function_template.hpp:767
#10 0xffffffff in ARDOUR::AlsaAudioBackend::alsa_process_thread(void*) (arg=0xc8a6d40) at ../libs/backends/alsa/alsa_audiobackend.cc:1109
#11 0xffffffff in start_thread (arg=0xa6b091c0) at pthread_create.c:310
#12 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 20 (Thread 0xac4221c0 (LWP 1592)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in __GI_ppoll (fds=0xc777368, nfds=2, timeout=0xac4215a8, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:56
#2  0xffffffff in Alsa_pcmi::pcm_wait() (this=0xc777308) at ../libs/backends/alsa/zita-alsa-pcmi.cc:178
#3  0xffffffff in ARDOUR::AlsaAudioBackend::main_process_thread() (this=0x95a2e28) at ../libs/backends/alsa/alsa_audiobackend.cc:1890
#4  0xffffffff in pthread_process(void*) (arg=0x95a2e28) at ../libs/backends/alsa/alsa_audiobackend.cc:794
#5  0xffffffff in start_thread (arg=0xac4221c0) at pthread_create.c:310
#6  0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 19 (Thread 0xabafeb40 (LWP 1591)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in select () at ../sysdeps/unix/syscall-template.S:81
#2  0xffffffff in PBD::SystemExec::output_interposer() (this=0xc771f98) at ../libs/pbd/system_exec.cc:926
#3  0xffffffff in interposer_thread(void*) (arg=0xc771f98) at ../libs/pbd/system_exec.cc:333
#4  0xffffffff in start_thread (arg=0xabafeb40) at pthread_create.c:310
#5  0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 9 (Thread 0xaccffb40 (LWP 1574)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in poll () at ../sysdeps/unix/syscall-template.S:81
#2  0xffffffff in g_poll () at /lib/libglib-2.0.so.0
#3  0xffffffff in g_main_context_iterate.isra () at /lib/libglib-2.0.so.0
#4  0xffffffff in g_main_context_iteration () at /lib/libglib-2.0.so.0
#5  0xffffffff in glib_worker_main () at /lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#6  0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#7  0xffffffff in start_thread (arg=0xaccffb40) at pthread_create.c:310
#8  0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 8 (Thread 0xad650b40 (LWP 1573)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in poll () at ../sysdeps/unix/syscall-template.S:81
#2  0xffffffff in g_poll () at /lib/libglib-2.0.so.0
#3  0xffffffff in g_main_context_iterate.isra () at /lib/libglib-2.0.so.0
#4  0xffffffff in g_main_loop_run () at /lib/libglib-2.0.so.0
#5  0xffffffff in gdbus_shared_thread_func () at /lib/libgio-2.0.so.0
#6  0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#7  0xffffffff in start_thread (arg=0xad650b40) at pthread_create.c:310
#8  0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 7 (Thread 0xae434b40 (LWP 1572)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in syscall () at ../sysdeps/unix/sysv/linux/i386/syscall.S:29
#2  0xffffffff in g_cond_wait () at /lib/libglib-2.0.so.0
#3  0xffffffff in Glib::Threads::Cond::wait(Glib::Threads::Mutex&) () at /lib/libglibmm-2.4.so.1
#4  0xffffffff in ARDOUR::AudioEngine::do_devicelist_update() (this=0x93f0598) at ../libs/ardour/audioengine.cc:560
#5  0xffffffff in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator()(ARDOUR::AudioEngine*) const (this=0x936dc90, p=0x93f0598) at /usr/include/boost/bind/mem_fn_template.hpp:49
#6  0xffffffff 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=0x936dc98, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#7  0xffffffff in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator()() (this=0x936dc90)
    at /usr/include/boost/bind/bind_template.hpp:20
#8  0xffffffff in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > > >::operator()() const (this=0x936dc90)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#9  0xffffffff 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(sigc::internal::slot_rep*) (rep=0x936dc78) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#10 0xffffffff in call_thread_entry_slot () at /lib/libglibmm-2.4.so.1
#11 0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#12 0xffffffff in start_thread (arg=0xae434b40) at pthread_create.c:310
#13 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 6 (Thread 0xaec35b40 (LWP 1571)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in syscall () at ../sysdeps/unix/sysv/linux/i386/syscall.S:29
#2  0xffffffff in g_cond_wait () at /lib/libglib-2.0.so.0
#3  0xffffffff in Glib::Threads::Cond::wait(Glib::Threads::Mutex&) () at /lib/libglibmm-2.4.so.1
#4  0xffffffff in ARDOUR::AudioEngine::do_reset_backend() (this=0x93f0598) at ../libs/ardour/audioengine.cc:525
#5  0xffffffff in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator()(ARDOUR::AudioEngine*) const (this=0x93f0528, p=0x93f0598) at /usr/include/boost/bind/mem_fn_template.hpp:49
#6  0xffffffff 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=0x93f0530, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253
#7  0xffffffff in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator()() (this=0x93f0528)
    at /usr/include/boost/bind/bind_template.hpp:20
#8  0xffffffff in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > > >::operator()() const (this=0x93f0528)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#9  0xffffffff 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(sigc::internal::slot_rep*) (rep=0x93f0510) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#10 0xffffffff in call_thread_entry_slot () at /lib/libglibmm-2.4.so.1
#11 0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#12 0xffffffff in start_thread (arg=0xaec35b40) at pthread_create.c:310
---Type <return> to continue, or q <return> to quit---
#13 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 5 (Thread 0xafdfeb40 (LWP 1570)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in syscall () at ../sysdeps/unix/sysv/linux/i386/syscall.S:29
#2  0xffffffff in g_cond_wait () at /lib/libglib-2.0.so.0
#3  0xffffffff in Glib::Threads::Cond::wait(Glib::Threads::Mutex&) () at /lib/libglibmm-2.4.so.1
#4  0xffffffff in ARDOUR::Analyser::work() () at ../libs/ardour/analyser.cc:87
#5  0xffffffff in analyser_work() () at ../libs/ardour/analyser.cc:52
#6  0x08923759 in sigc::pointer_functor0<void>::operator()() const (this=0x91e647c) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#7  0x089211d0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const (this=0x91e6478) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#8  0x0891e370 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) (rep=0x91e6460) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#9  0xffffffff in call_thread_entry_slot () at /lib/libglibmm-2.4.so.1
#10 0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#11 0xffffffff in start_thread (arg=0xafdfeb40) at pthread_create.c:310
#12 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 4 (Thread 0xb05ffb40 (LWP 1569)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in syscall () at ../sysdeps/unix/sysv/linux/i386/syscall.S:29
#2  0xffffffff in g_cond_wait () at /lib/libglib-2.0.so.0
#3  0xffffffff in Glib::Threads::Cond::wait(Glib::Threads::Mutex&) () at /lib/libglibmm-2.4.so.1
#4  0xffffffff in peak_thread_work() () at ../libs/ardour/source_factory.cc:71
#5  0x08923759 in sigc::pointer_functor0<void>::operator()() const (this=0x91eef34) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#6  0x089211d0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const (this=0x91eef30) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#7  0x0891e370 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) (rep=0x91eef18) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#8  0xffffffff in call_thread_entry_slot () at /lib/libglibmm-2.4.so.1
#9  0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#10 0xffffffff in start_thread (arg=0xb05ffb40) at pthread_create.c:310
#11 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 3 (Thread 0xb0f49b40 (LWP 1568)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in syscall () at ../sysdeps/unix/sysv/linux/i386/syscall.S:29
#2  0xffffffff in g_cond_wait () at /lib/libglib-2.0.so.0
#3  0xffffffff in Glib::Threads::Cond::wait(Glib::Threads::Mutex&) () at /lib/libglibmm-2.4.so.1
#4  0xffffffff in peak_thread_work() () at ../libs/ardour/source_factory.cc:71
#5  0x08923759 in sigc::pointer_functor0<void>::operator()() const (this=0x92a14ec) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#6  0x089211d0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const (this=0x92a14e8) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#7  0x0891e370 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) (rep=0x92a14d0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#8  0xffffffff in call_thread_entry_slot () at /lib/libglibmm-2.4.so.1
#9  0xffffffff in g_thread_proxy () at /lib/libglib-2.0.so.0
#10 0xffffffff in start_thread (arg=0xb0f49b40) at pthread_create.c:310
#11 0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122

Thread 2 (Thread 0xb174ab40 (LWP 1567)):
#0  0xffffffff in __kernel_vsyscall ()
#1  0xffffffff in nanosleep () at ../sysdeps/unix/syscall-template.S:81
#2  0xffffffff in g_usleep () at /lib/libglib-2.0.so.0
#3  0xffffffff in Glib::usleep(unsigned long) () at /lib/libglibmm-2.4.so.1
#4  0x08bd10c6 in gui_event_loop(void*) (ptr=0x0) at ../gtk2_ardour/linux_vst_gui_support.cc:475
#5  0xffffffff in start_thread (arg=0xb174ab40) at pthread_create.c:310
#6  0xffffffff in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122
---Type <return> to continue, or q <return> to quit---

Thread 1 (Thread 0xb19a9940 (LWP 1566)):
#0  0xffffffff in boost::shared_ptr<ARDOUR::PlaylistSource>::~shared_ptr() (this=0xbfffc360, __in_chrg=<optimized out>) at /usr/include/boost/smart_ptr/shared_ptr.hpp:328
#1  0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe5bb390, source=..., shallow=false) at ../libs/ardour/region.cc:1607
#2  0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe5b8550, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#3  0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe5c9468, source=..., shallow=false) at ../libs/ardour/region.cc:1606
#4  0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe5c8f50, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#5  0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe5e97e0, source=..., shallow=false) at ../libs/ardour/region.cc:1590
#6  0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe5e92c8, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#7  0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe5f72c8, source=..., shallow=false) at ../libs/ardour/region.cc:1590
#8  0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe5f6d20, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#9  0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe63d790, source=..., shallow=false) at ../libs/ardour/region.cc:1590
#10 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe63d270, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#11 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe64e238, source=..., shallow=false) at ../libs/ardour/region.cc:1590
#12 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe64dc78, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#13 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe65b2b0, source=..., shallow=false) at ../libs/ardour/region.cc:1606
#14 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6584e8, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#15 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe665cb8, source=..., shallow=false) at ../libs/ardour/region.cc:1606
#16 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe662ef0, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#17 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6a3790, source=..., shallow=false) at ../libs/ardour/region.cc:1606
#18 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe69ccc8, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#19 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6b1cd0, source=..., shallow=false) at ../libs/ardour/region.cc:1606
#20 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6b17a0, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#21 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6c3718, source=..., shallow=false) at ../libs/ardour/region.cc:1590
#22 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6c3200, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#23 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6d1240, source=..., shallow=false) at ../libs/ardour/region.cc:1606
#24 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6d0b18, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#25 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6e2c80, source=..., shallow=false) at ../libs/ardour/region.cc:1606
#26 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe6e2768, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#27 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe70dfd8, source=..., shallow=false) at ../libs/ardour/region.cc:1606
#28 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe70dac0, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#29 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe7219d0, source=..., shallow=false) at ../libs/ardour/region.cc:1590
#30 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe7214b8, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#31 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe731498, source=..., shallow=false) at ../libs/ardour/region.cc:1590
#32 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe730f68, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#33 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe742eb0, source=..., shallow=false) at ../libs/ardour/region.cc:1606
#34 0xffffffff in ARDOUR::Playlist::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe742998, src=..., shallow=false) at ../libs/ardour/playlist.cc:2685
#35 0xffffffff in ARDOUR::Region::uses_source(boost::shared_ptr<ARDOUR::Source const>, bool) const (this=0xe74c1e0, source=..., shallow=false) at ../libs/ardour/region.cc:1590
#36 0xffffffff in ARDOUR::RegionFactory::get_regions_using_source(boost::shared_ptr<ARDOUR::Source>, std::set<boost::shared_ptr<ARDOUR::Region>, std::less<boost::shared_ptr<ARDOUR::Region> >, std::allocator<boost::shared_ptr<ARDOUR::Region> > >&) (s=..., r=std::set with 0 elements) at ../libs/ardour/region_factory.cc:640
#37 0xffffffff in ARDOUR::Session::destroy_sources(std::list<boost::shared_ptr<ARDOUR::Source>, std::allocator<boost::shared_ptr<ARDOUR::Source> > >) (this=0xa8bff78, srcs=std::list = {...})
    at ../libs/ardour/session.cc:4471
#38 0xffffffff in ARDOUR::Session::remove_last_capture() (this=0xa8bff78) at ../libs/ardour/session.cc:4528
#39 0x084ff98e in Editor::remove_last_capture() (this=0xd41a470) at ../gtk2_ardour/editor_ops.cc:5027
#40 0x0843931a in sigc::bound_mem_functor0<void, Editor>::operator()() const (this=0xc90e2a4) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#41 0x08433650 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, Editor> >::operator()() const (this=0xc90e2a0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#42 0x0842d0f6 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, Editor>, void>::call_it(sigc::internal::slot_rep*) (rep=0xc90e288) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#43 0xffffffff in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at /lib/libglibmm-2.4.so.1
#44 0xffffffff in g_cclosure_marshal_VOID__VOID () at /lib/libgobject-2.0.so.0
#45 0xffffffff in g_closure_invoke () at /lib/libgobject-2.0.so.0
#46 0xffffffff in signal_emit_unlocked_R () at /lib/libgobject-2.0.so.0
#47 0xffffffff in g_signal_emit_valist () at /lib/libgobject-2.0.so.0
#48 0xffffffff in g_signal_emit () at /lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#49 0xffffffff in _gtk_action_emit_activate () at /lib/libgtk-x11-2.0.so.0
#50 0xffffffff in gtk_action_activate () at /lib/libgtk-x11-2.0.so.0
#51 0xffffffff in g_cclosure_marshal_VOID__VOID () at /lib/libgobject-2.0.so.0
#52 0xffffffff in g_type_class_meta_marshal () at /lib/libgobject-2.0.so.0
#53 0xffffffff in g_closure_invoke () at /lib/libgobject-2.0.so.0
#54 0xffffffff in signal_emit_unlocked_R () at /lib/libgobject-2.0.so.0
#55 0xffffffff in g_signal_emit_valist () at /lib/libgobject-2.0.so.0
#56 0xffffffff in g_signal_emit () at /lib/libgobject-2.0.so.0
#57 0xffffffff in gtk_widget_activate () at /lib/libgtk-x11-2.0.so.0
#58 0xffffffff in gtk_menu_shell_activate_item () at /lib/libgtk-x11-2.0.so.0
#59 0xffffffff in gtk_menu_shell_button_release () at /lib/libgtk-x11-2.0.so.0
#60 0xffffffff in gtk_menu_button_release () at /lib/libgtk-x11-2.0.so.0
#61 0xffffffff in _gtk_marshal_BOOLEAN__BOXED () at /lib/libgtk-x11-2.0.so.0
#62 0xffffffff in g_type_class_meta_marshal () at /lib/libgobject-2.0.so.0
#63 0xffffffff in g_closure_invoke () at /lib/libgobject-2.0.so.0
#64 0xffffffff in signal_emit_unlocked_R () at /lib/libgobject-2.0.so.0
#65 0xffffffff in g_signal_emit_valist () at /lib/libgobject-2.0.so.0
#66 0xffffffff in g_signal_emit () at /lib/libgobject-2.0.so.0
#67 0xffffffff in gtk_widget_event_internal () at /lib/libgtk-x11-2.0.so.0
#68 0xffffffff in gtk_propagate_event () at /lib/libgtk-x11-2.0.so.0
#69 0xffffffff in gtk_main_do_event () at /lib/libgtk-x11-2.0.so.0
#70 0xffffffff in gdk_event_dispatch () at /lib/libgdk-x11-2.0.so.0
#71 0xffffffff in g_main_context_dispatch () at /lib/libglib-2.0.so.0
#72 0xffffffff in g_main_context_iterate.isra () at /lib/libglib-2.0.so.0
#73 0xffffffff in g_main_loop_run () at /lib/libglib-2.0.so.0
#74 0xffffffff in gtk_main () at /lib/libgtk-x11-2.0.so.0
#75 0xffffffff in Gtk::Main::run() () at /lib/libgtkmm-2.4.so.1
#76 0xffffffff in Gtkmm2ext::UI::run(Receiver&) (this=0x944fbd8, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:286
#77 0x08708848 in main(int, char**) (argc=1, argv=0xbfffe2c4) at ../gtk2_ardour/main.cc:408
(gdb) 

anemal

2016-09-20 12:06

reporter   ~0018704

Thanks for the hint. I'll upgrade FFTW to 3.3.5.

jrigg

2016-09-21 14:35

reporter   ~0018709

Note that upgrading fftw3 to 3.3.5 will only fix the thread safety problem if the application calling it uses the new fftw_make_planner_thread_safe() call. AFAIK very few plugins are using that yet.

tartina

2016-09-22 12:23

reporter   ~0018711

AFAIK only the host should call fftw_make_planner_thread_safe(), then if the plugins use the dynamic linked fft, this should be safe, but I could have got it wrong.
And Ardour does it in main, inside an #ifdef

#ifdef HAVE_FFTW35F
        fftwf_make_planner_thread_safe ();
#endif

So Ardour should be recompiled after installing FFTW 3.3.5.

Issue History

Date Modified Username Field Change
2016-09-19 00:22 anemal New Issue
2016-09-19 07:36 timbyr Note Added: 0018683
2016-09-19 07:36 timbyr Assigned To => timbyr
2016-09-19 07:36 timbyr Status new => feedback
2016-09-19 12:46 anemal Note Added: 0018690
2016-09-19 12:46 anemal Status feedback => assigned
2016-09-19 13:33 timbyr Note Added: 0018691
2016-09-19 14:51 anemal File Added: mysongname.ardour
2016-09-19 14:53 anemal Note Added: 0018692
2016-09-20 01:07 timbyr Assigned To timbyr =>
2016-09-20 01:07 timbyr Status assigned => confirmed
2016-09-20 01:24 timbyr Note Added: 0018695
2016-09-20 01:26 timbyr File Added: ardour-5.3.139-bug7036-bt.txt
2016-09-20 12:06 anemal Note Added: 0018704
2016-09-21 14:35 jrigg Note Added: 0018709
2016-09-22 12:23 tartina Note Added: 0018711