View Issue Details

IDProjectCategoryView StatusLast Update
0002883ardourbugspublic2013-01-22 11:03
Reporternettings Assigned Topaul  
PrioritynormalSeveritycrashReproducibilityalways
Status assignedResolutionfixed 
Product VersionSVN/2.0-ongoing 
Target Version3.0 
Summary0002883: 100% reproducible crash when removing track outputs, possibly related to MIDI binding
Descriptioni have one particular session that will crash whenever i try to remove an output in a track. it has a midi controller bound to the panner object.
what i *think* happens is this:

track has two outs and hence, an implicit stereo panner.
midi controller was bound to panner.
one out is removed. the stereo panner goes away.
the dangling controller binding immediately causes a segfault.

travelling atm, so i can't verify this hypothesis right now. comments welcome.
TagsNo tags attached.

Activities

cth103

2009-10-25 03:50

administrator   ~0006885

0x02212a25 in MIDIControllable::midi_sense_note(MIDI::Parser&, MIDI::EventTwoBytes*, bool) ()
   from /home/carl/src/ardour/2.0/libs/surfaces/generic_midi/libardour_genericmidi.so
(gdb) where
#0 0x02212a25 in MIDIControllable::midi_sense_note(MIDI::Parser&, MIDI::EventTwoBytes*, bool) ()
   from /home/carl/src/ardour/2.0/libs/surfaces/generic_midi/libardour_genericmidi.so
0000001 0x02212ab3 in MIDIControllable::midi_sense_note_on(MIDI::Parser&, MIDI::EventTwoBytes*) ()
   from /home/carl/src/ardour/2.0/libs/surfaces/generic_midi/libardour_genericmidi.so
#2 0x0221447e in sigc::internal::slot_call2<sigc::bound_mem_functor2<void, MIDIControllable, MIDI::Parser&, MIDI::EventTwoBytes*>, void, MIDI::Parser&, MIDI::EventTwoBytes*>::call_it(sigc::internal::slot_rep*, MIDI::Parser&, MIDI::EventTwoBytes* const&) ()
   from /home/carl/src/ardour/2.0/libs/surfaces/generic_midi/libardour_genericmidi.so
#3 0x00c10fe9 in sigc::signal2<void, MIDI::Parser&, MIDI::EventTwoBytes*, sigc::nil>::operator()(MIDI::Parser&, MIDI::EventTwoBytes* const&) const ()
   from libs/midi++2/libmidi++.so
0000004 0x00c0f66e in MIDI::Parser::signal(unsigned char*, unsigned int) () from libs/midi++2/libmidi++.so
0000005 0x00c10a39 in MIDI::Parser::scanner(unsigned char) () from libs/midi++2/libmidi++.so
#6 0x00c19e56 in MIDI::ALSA_SequencerMidiPort::read(unsigned char*, unsigned int) () from libs/midi++2/libmidi++.so
#7 0x0036db07 in ARDOUR::Session::midi_read(MIDI::Port*) () from libs/ardour/libardour.so
0000008 0x0036e814 in ARDOUR::Session::midi_thread_work() () from libs/ardour/libardour.so
0000009 0x0036ecb3 in ARDOUR::Session::_midi_thread_work(void*) () from libs/ardour/libardour.so
0000010 0x0097880e in start_thread (arg=0xb4fa1c90) at pthread_create.c:300
0000011 0x074b67ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

paul

2009-10-31 14:33

administrator   ~0007029

carl, a bt with line numbers (DEBUG=1) would be *perfect* :)

nettings

2009-11-03 11:18

manager   ~0007067

here's one. it didn't immediately crash when i removed one output, probably because i had midi feedback disabled. touching the midi controller did it in, though.

(gdb) info threads
  10 process 9463 0x00007f35ffb44346 in poll () from /lib64/libc.so.6
  9 process 9490 0x00007f360353c251 in nanosleep () from /lib64/libpthread.so.0
  8 process 9491 0x00007f35ffb44346 in poll () from /lib64/libc.so.6
  7 process 9488 0x00007f360353b90b in read () from /lib64/libpthread.so.0
  6 process 9487 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  5 process 9483 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  4 process 9482 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  3 process 9481 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  2 process 9489 0x00007f35ffb44346 in poll () from /lib64/libc.so.6
* 1 process 9492 0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
0000001 0x00007f35e111262f in MIDIControllable::midi_sense_controller (this=0x4b1b720, msg=0x13d2231)
    at libs/surfaces/generic_midi/midicontrollable.cc:152
#2 0x00007f35e1114a74 in sigc::bound_mem_functor2<void, MIDIControllable, MIDI::Parser&, MIDI::EventTwoBytes*>::operator() (
    this=0x4e8afa8, _A_a1=@0x13bec80, _A_a2=@0x4024dd48) at libs/sigc++2/sigc++/functors/mem_fun.h:1917
#3 0x00007f35e1114a9f in sigc::adaptor_functor<sigc::bound_mem_functor2<void, MIDIControllable, MIDI::Parser&, MIDI::EventTwoBytes*> >::operator()<MIDI::Parser&, MIDI::EventTwoBytes* const&> (this=0x4e8afa0, _A_arg1=@0x13bec80, _A_arg2=@0x4024dd48)
    at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:103
0000004 0x00007f35e1114ad2 in sigc::internal::slot_call2<sigc::bound_mem_functor2<void, MIDIControllable, MIDI::Parser&, MIDI::EventTwoBytes*>, void, MIDI::Parser&, MIDI::EventTwoBytes*>::call_it (rep=0x4e8af70, a_1=@0x13bec80, a_2=@0x4024dd48)
    at libs/sigc++2/sigc++/functors/slot.h:173
0000005 0x00007f3602a44e48 in sigc::internal::signal_emit2<void, MIDI::Parser&, MIDI::EventTwoBytes*, sigc::nil>::emit (impl=0x13c91c0,
    _A_a1=@0x13bec80, _A_a2=@0x4024dd48) at libs/sigc++2/sigc++/signal.h:1248
#6 0x00007f3602a44f3f in sigc::signal2<void, MIDI::Parser&, MIDI::EventTwoBytes*, sigc::nil>::emit (this=0x13bf408, _A_a1=@0x13bec80,
    _A_a2=@0x4024dd48) at libs/sigc++2/sigc++/signal.h:2881
#7 0x00007f3602a44f67 in sigc::signal2<void, MIDI::Parser&, MIDI::EventTwoBytes*, sigc::nil>::operator() (this=0x13bf408,
    _A_a1=@0x13bec80, _A_a2=@0x4024dd48) at libs/sigc++2/sigc++/signal.h:2889
0000008 0x00007f3602a3d03b in MIDI::Parser::signal (this=0x13bec80, msg=0x13d2230 "?\003??5\177", len=3) at libs/midi++2/midiparser.cc:705
0000009 0x00007f3602a3d93b in MIDI::Parser::scanner (this=0x13bec80, inbyte=63 '?') at libs/midi++2/midiparser.cc:501
0000010 0x00007f3602a4fd9b in MIDI::ALSA_SequencerMidiPort::read (this=0x13d1e60, buf=0x4024de70 "\003?K@", max=512)
    at libs/midi++2/alsa_sequencer_midiport.cc:156
t#11 0x00007f3607d2f1f4 in ARDOUR::Session::midi_read (this=0x4312da0, port=0x13d1e60) at libs/ardour/session_midi.cc:431
0000012 0x00007f3607d3165d in ARDOUR::Session::midi_thread_work (this=0x4312da0) at libs/ardour/session_midi.cc:1339
0000013 0x00007f3607d317bf in ARDOUR::Session::_midi_thread_work (arg=0x4312da0) at libs/ardour/session_midi.cc:1137
0000014 0x00007f3603535040 in start_thread () from /lib64/libpthread.so.0
#15 0x00007f35ffb4d08d in clone () from /lib64/libc.so.6
0000016 0x0000000000000000 in ?? ()
(gdb) thread 2
[Switching to thread 2 (process 9489)]#0 0x00007f35ffb44346 in poll () from /lib64/libc.so.6
(gdb) bt
#0 0x00007f35ffb44346 in poll () from /lib64/libc.so.6
0000001 0x00007f360376dd77 in Jack::JackFifo::TimedWait () from /usr/local/lib/libjack.so.0
#2 0x00007f360375aa5a in Jack::JackConnectionManager::SuspendRefNum () from /usr/local/lib/libjack.so.0
#3 0x00007f36037596f1 in Jack::JackClient::Execute () from /usr/local/lib/libjack.so.0
0000004 0x00007f360376cf0a in Jack::JackPosixThread::ThreadHandler () from /usr/local/lib/libjack.so.0
0000005 0x00007f3603535040 in start_thread () from /lib64/libpthread.so.0
#6 0x00007f35ffb4d08d in clone () from /lib64/libc.so.6
#7 0x0000000000000000 in ?? ()
(gdb) thread 3
[Switching to thread 3 (process 9481)]#0 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
0000001 0x00007f36056bcaf2 in Glib::Cond::wait (this=0x141cbf0, mutex=@0x7f360806fda0) at libs/glibmm2/glibmm/thread.cc:362
#2 0x00007f3607d70697 in peak_thread_work () at libs/ardour/source_factory.cc:65
#3 0x0000000000c17771 in sigc::pointer_functor0<void>::operator() (this=0x141ccf8) at libs/sigc++2/sigc++/functors/ptr_fun.h:77
0000004 0x0000000000c1778d in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x141ccf0)
    at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
0000005 0x0000000000c177b0 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x141ccc0)
    at libs/sigc++2/sigc++/functors/slot.h:103
#6 0x000000000080ed79 in sigc::slot0<void>::operator() (this=0x141cca0) at libs/sigc++2/sigc++/functors/slot.h:440
#7 0x00007f36056bd41c in call_thread_entry_slot (data=0x141cca0) at libs/glibmm2/glibmm/thread.cc:43
0000008 0x00007f36059457b4 in ?? () from /usr/lib64/libglib-2.0.so.0
0000009 0x00007f3603535040 in start_thread () from /lib64/libpthread.so.0
0000010 0x00007f35ffb4d08d in clone () from /lib64/libc.so.6
0000011 0x0000000000000000 in ?? ()
(gdb) thread 4
[Switching to thread 4 (process 9482)]#0 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
0000001 0x00007f36056bcaf2 in Glib::Cond::wait (this=0x141cbf0, mutex=@0x7f360806fda0) at libs/glibmm2/glibmm/thread.cc:362
#2 0x00007f3607d70697 in peak_thread_work () at libs/ardour/source_factory.cc:65
#3 0x0000000000c17771 in sigc::pointer_functor0<void>::operator() (this=0x141cff8) at libs/sigc++2/sigc++/functors/ptr_fun.h:77
0000004 0x0000000000c1778d in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x141cff0)
    at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
0000005 0x0000000000c177b0 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x141cfc0)
    at libs/sigc++2/sigc++/functors/slot.h:103
#6 0x000000000080ed79 in sigc::slot0<void>::operator() (this=0x141cfa0) at libs/sigc++2/sigc++/functors/slot.h:440
#7 0x00007f36056bd41c in call_thread_entry_slot (data=0x141cfa0) at libs/glibmm2/glibmm/thread.cc:43
0000008 0x00007f36059457b4 in ?? () from /usr/lib64/libglib-2.0.so.0
0000009 0x00007f3603535040 in start_thread () from /lib64/libpthread.so.0
0000010 0x00007f35ffb4d08d in clone () from /lib64/libc.so.6
0000011 0x0000000000000000 in ?? ()
(gdb) thread 5
[Switching to thread 5 (process 9483)]#0 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
0000001 0x00007f36056bcaf2 in Glib::Cond::wait (this=0x142a250, mutex=@0x7f360806f500) at libs/glibmm2/glibmm/thread.cc:362
#2 0x00007f3607b64758 in ARDOUR::Analyser::work () at libs/ardour/analyser.cc:85
#3 0x00007f3607b648b8 in analyser_work () at libs/ardour/analyser.cc:49
0000004 0x0000000000c17771 in sigc::pointer_functor0<void>::operator() (this=0x142a2c8) at libs/sigc++2/sigc++/functors/ptr_fun.h:77
0000005 0x0000000000c1778d in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x142a2c0)
    at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
#6 0x0000000000c177b0 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x142a290)
    at libs/sigc++2/sigc++/functors/slot.h:103
#7 0x000000000080ed79 in sigc::slot0<void>::operator() (this=0x142a270) at libs/sigc++2/sigc++/functors/slot.h:440
0000008 0x00007f36056bd41c in call_thread_entry_slot (data=0x142a270) at libs/glibmm2/glibmm/thread.cc:43
0000009 0x00007f36059457b4 in ?? () from /usr/lib64/libglib-2.0.so.0
0000010 0x00007f3603535040 in start_thread () from /lib64/libpthread.so.0
0000011 0x00007f35ffb4d08d in clone () from /lib64/libc.so.6
0000012 0x0000000000000000 in ?? ()
(gdb) thread 6
[Switching to thread 6 (process 9487)]#0 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00007f3603538dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
0000001 0x00007f360376e1d1 in Jack::JackProcessSync::Wait () from /usr/local/lib/libjack.so.0
#2 0x00007f3603769e29 in Jack::JackMessageBuffer::Execute () from /usr/local/lib/libjack.so.0
#3 0x00007f360376cf0a in Jack::JackPosixThread::ThreadHandler () from /usr/local/lib/libjack.so.0
0000004 0x00007f3603535040 in start_thread () from /lib64/libpthread.so.0
0000005 0x00007f35ffb4d08d in clone () from /lib64/libc.so.6
#6 0x0000000000000000 in ?? ()
(gdb) thread 7
[Switching to thread 7 (process 9488)]#0 0x00007f360353b90b in read () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00007f360353b90b in read () from /lib64/libpthread.so.0
0000001 0x00007f360376e7f2 in Jack::JackClientSocket::Read () from /usr/local/lib/libjack.so.0
#2 0x00007f3603770b87 in Jack::JackSocketClientChannel::Execute () from /usr/local/lib/libjack.so.0
#3 0x00007f360376cf0a in Jack::JackPosixThread::ThreadHandler () from /usr/local/lib/libjack.so.0
0000004 0x00007f3603535040 in start_thread () from /lib64/libpthread.so.0
0000005 0x00007f35ffb4d08d in clone () from /lib64/libc.so.6
#6 0x0000000000000000 in ?? ()
(gdb) thread 8
[Switching to thread 8 (process 9491)]#0 0x00007f35ffb44346 in poll () from /lib64/libc.so.6
(gdb) bt
#0 0x00007f35ffb44346 in poll () from /lib64/libc.so.6
0000001 0x00007f3607ccd6bf in ARDOUR::Session::butler_thread_work (this=0x4312da0) at libs/ardour/session_butler.cc:179
#2 0x00007f3607cce693 in ARDOUR::Session::_butler_thread_work (arg=0x4312da0) at libs/ardour/session_butler.cc:159
#3 0x00007f3603535040 in start_thread () from /lib64/libpthread.so.0
0000004 0x00007f35ffb4d08d in clone () from /lib64/libc.so.6
0000005 0x0000000000000000 in ?? ()
(gdb) thread 9
[Switching to thread 9 (process 9490)]#0 0x00007f360353c251 in nanosleep () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00007f360353c251 in nanosleep () from /lib64/libpthread.so.0
0000001 0x00007f3605947928 in g_usleep () from /usr/lib64/libglib-2.0.so.0
#2 0x00007f36056b12d9 in Glib::usleep (microseconds=10000) at libs/glibmm2/glibmm/timer.cc:68
#3 0x00007f3607b84e4c in ARDOUR::AudioEngine::meter_thread (this=0x3fbb030) at libs/ardour/audioengine.cc:453
0000004 0x00007f3607b89559 in sigc::bound_mem_functor0<void, ARDOUR::AudioEngine>::operator() (this=0x42e1b18)
    at libs/sigc++2/sigc++/functors/mem_fun.h:1787
0000005 0x00007f3607b89575 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, ARDOUR::AudioEngine> >::operator() (this=0x42e1b10)
    at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251
#6 0x00007f3607b89598 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, ARDOUR::AudioEngine>, void>::call_it (rep=0x42e1ae0)
    at libs/sigc++2/sigc++/functors/slot.h:103
#7 0x000000000080ed79 in sigc::slot0<void>::operator() (this=0x42fdda0) at libs/sigc++2/sigc++/functors/slot.h:440
0000008 0x00007f36056bd41c in call_thread_entry_slot (data=0x42fdda0) at libs/glibmm2/glibmm/thread.cc:43
0000009 0x00007f36059457b4 in ?? () from /usr/lib64/libglib-2.0.so.0
0000010 0x00007f3603535040 in start_thread () from /lib64/libpthread.so.0
0000011 0x00007f35ffb4d08d in clone () from /lib64/libc.so.6
0000012 0x0000000000000000 in ?? ()
(gdb) thread 10
[Switching to thread 10 (process 9463)]#0 0x00007f35ffb44346 in poll () from /lib64/libc.so.6
(gdb) bt
#0 0x00007f35ffb44346 in poll () from /lib64/libc.so.6
0000001 0x00007f360591feff in ?? () from /usr/lib64/libglib-2.0.so.0
#2 0x00007f360592052d in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#3 0x00007f36051e9977 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
0000004 0x00007f3603f213d5 in Gtk::Main::run_impl (this=0x116ffb0) at libs/gtkmm2/gtk/gtkmm/main.cc:503
0000005 0x00007f3603f21272 in Gtk::Main::run () at libs/gtkmm2/gtk/gtkmm/main.cc:450
#6 0x00007f3603a364cf in Gtkmm2ext::UI::run (this=0x116a7a0, old_receiver=@0x112c440) at libs/gtkmm2ext/gtk_ui.cc:226
#7 0x0000000000b50131 in main (argc=1, argv=0x7fff0d0156a8) at gtk2_ardour/main.cc:389
(gdb)

nettings

2013-01-22 11:03

manager   ~0014551

this issue is long gone in 3.0 svn.

Issue History

Date Modified Username Field Change
2009-10-24 22:42 nettings New Issue
2009-10-24 22:42 nettings cost => 0.00
2009-10-25 03:46 cth103 Status new => confirmed
2009-10-25 03:50 cth103 Note Added: 0006885
2009-10-31 14:33 paul Note Added: 0007029
2009-11-03 11:18 nettings Note Added: 0007067
2009-11-03 11:30 nettings Status confirmed => assigned
2009-11-03 11:30 nettings Assigned To => paul
2013-01-22 11:03 nettings Note Added: 0014551
2013-01-22 11:03 nettings Resolution open => fixed
2013-01-22 11:03 nettings Fixed in Version => SVN 3.0
2013-01-22 11:03 nettings Target Version => 3.0