View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0003249 | ardour | bugs | public | 2010-06-18 15:56 | 2020-04-19 20:14 |
| Reporter | danboid | Assigned To | cth103 | ||
| Priority | normal | Severity | crash | Reproducibility | random |
| Status | closed | Resolution | fixed | ||
| Target Version | 3.0-beta1 | ||||
| Summary | 0003249: A3 freezes when working with MIDI | ||||
| Description | I get regular freezes when doing routine MIDI editing like selecting or creating notes. Here is a backtrace took from 7279 running under lucid 64 just after one such freeze: | ||||
| Additional Information | Midi 1-5.mid drop model Mouse mode toggled to 1 Mouse mode toggled to 2 ^Z Program received signal SIGTSTP, Stopped (user). 0x00007ffff354e85c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 (gdb) thread apply all bt Thread 17 (Thread 0x7fffccf8d830 (LWP 6946)): #0 0x00007ffff355211d in nanosleep () from /lib/libpthread.so.0 0000001 0x00007ffff30c77d8 in g_usleep () from /lib/libglib-2.0.so.0 #2 0x00007ffff6806774 in ARDOUR::AudioEngine::meter_thread (this=0x7fffdc1dfc00) at ../libs/ardour/audioengine.cc:666 #3 0x00007ffff6820dd9 in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator() (this=0x7fffdc2595d0, p=0x7fffdc1dfc00) at /usr/include/boost/bind/mem_fn_template.hpp:49 0000004 0x00007ffff681d4a4 in boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0> ( this=0x7fffdc2595e0, f=..., a=...) at /usr/include/boost/bind/bind.hpp:246 0000005 0x00007ffff6819dff in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator() ( this=0x7fffdc2595d0) at /usr/include/boost/bind/bind_template.hpp:20 #6 0x00007ffff6815fb6 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=0x7fffdc2595d0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 #7 0x00007ffff68128e6 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=0x7fffdc2595a0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 0000008 0x00007ffff2494862 in ?? () from /usr/lib/libglibmm-2.4.so.1 0000009 0x00007ffff30c4b84 in ?? () from /lib/libglib-2.0.so.0 0000010 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 0000011 0x00007fffecfce6cd in clone () from /lib/libc.so.6 0000012 0x0000000000000000 in ?? () Thread 16 (Thread 0x7fffe1884710 (LWP 6945)): #0 0x00007fffecfc1f53 in poll () from /lib/libc.so.6 0000001 0x00007ffff309f4a9 in ?? () from /lib/libglib-2.0.so.0 #2 0x00007ffff309fc55 in g_main_loop_run () from /lib/libglib-2.0.so.0 #3 0x00007ffff7b2fcbb in BaseUI::main_thread (this=0x265f3b0) at ../libs/pbd/base_ui.cc:76 0000004 0x00007ffff7b31167 in sigc::bound_mem_functor0<void, BaseUI>::operator() (this=0x265ebe8) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787 0000005 0x00007ffff7b30fc2 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator() (this=0x265ebe0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 #6 0x00007ffff7b30d1b in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it (rep=0x265ebb0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 #7 0x00007ffff2494862 in ?? () from /usr/lib/libglibmm-2.4.so.1 0000008 0x00007ffff30c4b84 in ?? () from /lib/libglib-2.0.so.0 0000009 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 0000010 0x00007fffecfce6cd in clone () from /lib/libc.so.6 0000011 0x0000000000000000 in ?? () Thread 15 (Thread 0x7fffcd008830 (LWP 6944)): #0 0x00007fffecfc1f53 in poll () from /lib/libc.so.6 0000001 0x00007ffff6877c70 in ARDOUR::Butler::thread_work (this=0x24562a0) at ../libs/ardour/butler.cc:159 #2 0x00007ffff6877be4 in ARDOUR::Butler::_thread_work (arg=0x24562a0) at ../libs/ardour/butler.cc:140 #3 0x00007ffff7b639a8 in fake_thread_start (arg=0x1fc5100) at ../libs/pbd/pthread_utils.cc:81 0000004 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 0000005 0x00007fffecfce6cd in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () Thread 14 (Thread 0x7fffe0020db0 (LWP 6943)): #0 0x00007ffff3550b50 in sem_wait () from /lib/libpthread.so.0 ---Type <return> to continue, or q <return> to quit--- 0000001 0x00007ffff695ed2f in ARDOUR::Graph::restart_cycle (this=0x2457460) at ../libs/ardour/graph.cc:175 #2 0x00007ffff695ecf9 in ARDOUR::Graph::dec_ref (this=0x2457460) at ../libs/ardour/graph.cc:161 #3 0x00007ffff6964c98 in ARDOUR::GraphNode::finish (this=0x245b2a0, chain=1) at ../libs/ardour/graphnode.cc:57 0000004 0x00007ffff695fc83 in ARDOUR::Graph::run_one (this=0x2457460) at ../libs/ardour/graph.cc:320 0000005 0x00007ffff695fd75 in ARDOUR::Graph::helper_thread (this=0x2457460) at ../libs/ardour/graph.cc:352 #6 0x00007ffff696421b in sigc::bound_mem_functor0<void, ARDOUR::Graph>::operator() (this=0x2457b48) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787 #7 0x00007ffff6963f78 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, ARDOUR::Graph> >::operator() (this=0x2457b40) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 0000008 0x00007ffff6963a99 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, ARDOUR::Graph>, void>::call_it (rep=0x2457b10) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 0000009 0x00007ffff2494862 in ?? () from /usr/lib/libglibmm-2.4.so.1 0000010 0x00007ffff30c4b84 in ?? () from /lib/libglib-2.0.so.0 0000011 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 0000012 0x00007fffecfce6cd in clone () from /lib/libc.so.6 0000013 0x0000000000000000 in ?? () Thread 13 (Thread 0x7fffe215ddb0 (LWP 6942)): #0 0x00007ffff3550b50 in sem_wait () from /lib/libpthread.so.0 0000001 0x00007ffff695fad6 in ARDOUR::Graph::run_one (this=0x2457460) at ../libs/ardour/graph.cc:307 #2 0x00007ffff695fe3a in ARDOUR::Graph::main_thread (this=0x2457460) at ../libs/ardour/graph.cc:379 #3 0x00007ffff696421b in sigc::bound_mem_functor0<void, ARDOUR::Graph>::operator() (this=0x2457ae8) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787 0000004 0x00007ffff6963f78 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, ARDOUR::Graph> >::operator() (this=0x2457ae0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251 0000005 0x00007ffff6963a99 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, ARDOUR::Graph>, void>::call_it (rep=0x2457ab0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103 #6 0x00007ffff2494862 in ?? () from /usr/lib/libglibmm-2.4.so.1 #7 0x00007ffff30c4b84 in ?? () from /lib/libglib-2.0.so.0 0000008 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 0000009 0x00007fffecfce6cd in clone () from /lib/libc.so.6 0000010 0x0000000000000000 in ?? () Thread 12 (Thread 0x7fffe1083710 (LWP 6941)): #0 0x00007fffecfc1f53 in poll () from /lib/libc.so.6 0000001 0x00007ffff376a1a6 in jack_client_core_wait (client=0x7fffdc1e3b20) at client.c:1681 #2 0x00007ffff376a54c in jack_cycle_wait (client=0x7fffdc1e3b20) at client.c:1878 #3 0x00007ffff68059e9 in ARDOUR::AudioEngine::process_thread (this=0x7fffdc1dfc00) at ../libs/ardour/audioengine.cc:429 0000004 0x00007ffff68057bc in ARDOUR::AudioEngine::_process_thread (arg=0x7fffdc1dfc00) at ../libs/ardour/audioengine.cc:371 0000005 0x00007ffff376a85e in jack_client_thread (arg=0x7fffdc1e3b20) at client.c:2003 #6 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 #7 0x00007fffecfce6cd in clone () from /lib/libc.so.6 0000008 0x0000000000000000 in ?? () Thread 11 (Thread 0x7fffdbfff710 (LWP 6934)): #0 0x00007ffff354e85c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 0000001 0x00007ffff376c62d in mb_thread_func (arg=0x0) at messagebuffer.c:72 #2 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 #3 0x00007fffecfce6cd in clone () from /lib/libc.so.6 ---Type <return> to continue, or q <return> to quit--- 0000004 0x0000000000000000 in ?? () Thread 4 (Thread 0x7fffdb5a2710 (LWP 6925)): #0 0x00007ffff354e85c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 0000001 0x00007ffff679ab4f in ARDOUR::Analyser::work () at ../libs/ardour/analyser.cc:85 #2 0x00007ffff679a881 in analyser_work () at ../libs/ardour/analyser.cc:49 #3 0x0000000000e12113 in sigc::pointer_functor0<void>::operator()() const () 0000004 0x0000000000e1065e in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const () 0000005 0x0000000000e0df49 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) () #6 0x00007ffff2494862 in ?? () from /usr/lib/libglibmm-2.4.so.1 #7 0x00007ffff30c4b84 in ?? () from /lib/libglib-2.0.so.0 0000008 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 0000009 0x00007fffecfce6cd in clone () from /lib/libc.so.6 0000010 0x0000000000000000 in ?? () Thread 3 (Thread 0x7fffe3da3710 (LWP 6924)): #0 0x00007ffff354e85c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 0000001 0x00007ffff6bf9a67 in peak_thread_work () at ../libs/ardour/source_factory.cc:69 #2 0x0000000000e12113 in sigc::pointer_functor0<void>::operator()() const () #3 0x0000000000e1065e in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const () 0000004 0x0000000000e0df49 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) () 0000005 0x00007ffff2494862 in ?? () from /usr/lib/libglibmm-2.4.so.1 #6 0x00007ffff30c4b84 in ?? () from /lib/libglib-2.0.so.0 #7 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 0000008 0x00007fffecfce6cd in clone () from /lib/libc.so.6 0000009 0x0000000000000000 in ?? () Thread 2 (Thread 0x7fffe45a4710 (LWP 6923)): #0 0x00007ffff354e85c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 0000001 0x00007ffff6bf9a67 in peak_thread_work () at ../libs/ardour/source_factory.cc:69 #2 0x0000000000e12113 in sigc::pointer_functor0<void>::operator()() const () #3 0x0000000000e1065e in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator()() const () 0000004 0x0000000000e0df49 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it(sigc::internal::slot_rep*) () 0000005 0x00007ffff2494862 in ?? () from /usr/lib/libglibmm-2.4.so.1 #6 0x00007ffff30c4b84 in ?? () from /lib/libglib-2.0.so.0 #7 0x00007ffff35499ca in start_thread () from /lib/libpthread.so.0 0000008 0x00007fffecfce6cd in clone () from /lib/libc.so.6 0000009 0x0000000000000000 in ?? () Thread 1 (Thread 0x7ffff7fad820 (LWP 6920)): #0 0x00007ffff354e85c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 0000001 0x00007ffff30c3f8d in g_static_rw_lock_writer_lock () from /lib/libglib-2.0.so.0 #2 0x0000000000c9f2dc in WriterLock (this=0x7fffdc8e46c0, rwlock=...) at /usr/include/glibmm-2.4/glibmm/thread.h:990 #3 0x00007ffff69bd156 in WriteLockImpl (this=0x7fffdc7c13d0, s=..., c=...) at ../libs/evoral/evoral/Sequence.hpp:71 0000004 0x00007ffff69bbfa5 in WriteLockImpl (this=0x7fffdc7c13d0, source_lock=0x7fffdc874350, s=..., c=...) at ../libs/ardour/ardour/midi_model.h:157 0000005 0x00007ffff69bacce in ARDOUR::MidiModel::edit_lock (this=0x7fffdc57adc0) at ../libs/ardour/midi_model.cc:906 #6 0x00007ffff69b5eab in ARDOUR::MidiModel::DiffCommand::operator() (this=0x7fffdc8c8f60) at ../libs/ardour/midi_model.cc:232 ---Type <return> to continue, or q <return> to quit--- #7 0x00007ffff69b5023 in ARDOUR::MidiModel::apply_command (this=0x7fffdc57adc0, session=..., cmd=0x7fffdc8c8f60) at ../libs/ardour/midi_model.cc:70 0000008 0x0000000000caeadd in MidiRegionView::create_note_at (this=0x7fffdc57d0e0, x=1111.9989173346867, y=106, length=0.5) at ../gtk2_ardour/midi_region_view.cc:687 0000009 0x0000000000cad005 in MidiRegionView::button_release (this=0x7fffdc57d0e0, ev=0x2855250) at ../gtk2_ardour/midi_region_view.cc:351 0000010 0x0000000000cacbde in MidiRegionView::canvas_event (this=0x7fffdc57d0e0, ev=0x2855250) at ../gtk2_ardour/midi_region_view.cc:257 0000011 0x0000000000cca174 in sigc::bound_mem_functor1<bool, MidiRegionView, _GdkEvent*>::operator() (this=0x7fffdc57a958, _A_a1=@0x7fffffffcd08) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1851 0000012 0x0000000000cc885f in sigc::adaptor_functor<sigc::bound_mem_functor1<bool, MidiRegionView, _GdkEvent*> >::operator()<_GdkEvent* const&> (this=0x7fffdc57a950, _A_arg1=@0x7fffffffcd08) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:84 0000013 0x0000000000cc6a36 in sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, MidiRegionView, _GdkEvent*>, bool, _GdkEvent*>::call_it (rep=0x7fffdc57a920, a_1=@0x7fffffffcd08) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:137 0000014 0x00007fffee33ef22 in ?? () from /usr/lib/libgnomecanvasmm-2.6.so.1 #15 0x00007fffefe7e708 in gnome_canvas_marshal_BOOLEAN__BOXED (closure=0x7fffdc462e40, return_value=0x7fffffffcec0, n_param_values=<value optimised out>, param_values=0x7fffdc8f2b50, invocation_hint=<value optimised out>, marshal_data=0x7fffee33eee0) at gnome-canvas-marshal.c:125 0000016 0x00007ffff22235de in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #17 0x00007ffff2237598 in ?? () from /usr/lib/libgobject-2.0.so.0 0000018 0x00007ffff22388b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 0000019 0x00007ffff2239033 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 0000020 0x00007fffefe79e12 in emit_event (canvas=<value optimised out>, event=<value optimised out>) at gnome-canvas.c:2585 0000021 0x00007fffefe7c9c6 in gnome_canvas_button (widget=<value optimised out>, event=0x28a3190) at gnome-canvas.c:2800 0000022 0x00007ffff1b310e8 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 0000023 0x00007ffff22235de in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #24 0x00007ffff22371dd in ?? () from /usr/lib/libgobject-2.0.so.0 0000025 0x00007ffff22388b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 0000026 0x00007ffff2239033 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 0000027 0x00007ffff1c4802f in ?? () from /usr/lib/libgtk-x11-2.0.so.0 0000028 0x00007ffff1b295b3 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 0000029 0x00007ffff1b2a68b in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 0000030 0x00007ffff179e86c in ?? () from /usr/lib/libgdk-x11-2.0.so.0 0000031 0x00007ffff309b8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 0000032 0x00007ffff309f748 in ?? () from /lib/libglib-2.0.so.0 0000033 0x00007ffff309fc55 in g_main_loop_run () from /lib/libglib-2.0.so.0 0000034 0x00007ffff1b2ab27 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 0000035 0x00007ffff58a7d93 in Gtkmm2ext::UI::run (this=0x1777e90, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:246 0000036 0x0000000000c8c07f in main (argc=1, argv=0x7fffffffdac8) at ../gtk2_ardour/main.cc:433 (gdb) | ||||
| Tags | No tags attached. | ||||
|
|
this crash trace looks impossible :( |
|
|
Impossible wasn't the response I wanted as I presume I wouldn't (couldn't) understand why its impossible anyway if it stumps you. Not a good sign! I can get you another MIDI editing induced freeze backtrace tomorrow (later) if you think it may make more sense than this does? |
|
|
I wonder if this could occur when a MidiModel's _midi_source has a read lock on the model, and set_midi_source is called on the model, so that the old midi source still holds the lock but is never invalidated by MidiModel::edit_lock. Committed a fix for that, at least. Perhaps you could test, Dan? Without this fix I could trigger a hang reliably by doing 1. edit midi region 2. start playback 3. stop playback. 4. save session. 5. edit midi region (-> hang) |
|
|
I can verify that the hang you described above has been fixed in 7280 and although I wasn't saving my session in my testing before I do think it was that lock problem that was causing my freezes. I've just survived much longer in A3's MIDI editing mode than was previously possible so I can pretty confidently say this has been fixed- thanks Carl! Anyone sussed out what is causing 3237 yet? |
|
|
OK, thanks, closing this then. Please re-open if you find any other recipes for triggering this bug. |
|
|
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 |
|---|---|---|---|
| 2010-06-18 15:56 | danboid | New Issue | |
| 2010-06-18 18:31 | paul | Note Added: 0008270 | |
| 2010-06-19 02:12 | danboid | Note Added: 0008272 | |
| 2010-06-20 00:06 | cth103 | cost | => 0.00 |
| 2010-06-20 00:06 | cth103 | Target Version | => 3.0-beta1 |
| 2010-06-20 01:06 | cth103 | Note Added: 0008278 | |
| 2010-06-20 01:08 | cth103 | Note Edited: 0008278 | |
| 2010-06-20 01:08 | cth103 | Note Edited: 0008278 | |
| 2010-06-20 01:34 | cth103 | Note Edited: 0008278 | |
| 2010-06-20 01:34 | cth103 | Status | new => feedback |
| 2010-06-20 11:19 | danboid | Note Added: 0008279 | |
| 2010-06-20 20:50 | cth103 | Note Added: 0008280 | |
| 2010-06-20 20:50 | cth103 | Status | feedback => resolved |
| 2010-06-20 20:50 | cth103 | Resolution | open => fixed |
| 2010-06-20 20:50 | cth103 | Assigned To | => cth103 |
| 2020-04-19 20:14 | system | Note Added: 0022136 | |
| 2020-04-19 20:14 | system | Status | resolved => closed |