View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002319 | ardour | bugs | public | 2008-06-21 12:35 | 2020-04-19 20:13 |
| Reporter | nowhiskey | Assigned To | cth103 | ||
| Priority | normal | Severity | crash | Reproducibility | random |
| Status | closed | Resolution | fixed | ||
| Product Version | SVN/2.0-ongoing | ||||
| Summary | 0002319: crash while trying to reconnect to jack | ||||
| Description | ongoing@3484 -running a 15 track session, ardour went disconnected from jack -trying to reconnect via menu->jack->reconnect, ardour crashed backtrace: nowhiskey@murija2:~/software/ardour2/2.0-ongoing/gtk2_ardour$ LANG=en_US.UTF-8 ./ardbg GNU gdb 6.7.1-debian Copyright (C) 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu"... Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /home/nowhiskey/software/ardour2/2.0-ongoing/gtk2_ardour/ardour-2.4.1 [Thread debugging using libthread_db enabled] (process:3507): Gdk-WARNING **: locale not supported by C library Ardour/GTK 2.4.1 (built using 3343 and GCC version 4.2.4 (Debian 4.2.4-2+b1)) Copyright (C) 1999-2008 Paul Davis Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker Ardour comes with ABSOLUTELY NO WARRANTY not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This is free software, and you are welcome to redistribute it under certain conditions; see the source for copying conditions. (ardour-2.4.1:3507): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale. [New Thread 0xb5f3e740 (LWP 3507)] theme_init() called from internal clearlooks engine /usr/share/themes/Clearlooks/gtk-2.0/gtkrc:67: error: unexpected identifier `colorize_scrollbar', expected character `}' loading default ui configuration file gtk2_ardour/ardour2_ui_default.conf loading user ui configuration file /home/nowhiskey/.ardour2/ardour2_ui.conf Loading ui configuration file gtk2_ardour/ardour2_ui_dark.rc theme_init() called from internal clearlooks engine ardour: [INFO]: Ardour will be limited to 1024 open files loading system configuration file ./ardour_system.rc loading user configuration file /home/nowhiskey/.ardour2/ardour.rc ardour: [INFO]: Using SSE optimized routines [New Thread 0xb5e6cb90 (LWP 3510)] [New Thread 0xb566cb90 (LWP 3511)] [New Thread 0xb4e6cb90 (LWP 3512)] RemoteVSTClient: all cache files are up-to-date, not running scanner ardour: [INFO]: looking for control protocols in /home/nowhiskey/.ardour2/surfaces/:/usr/local/lib/ardour2/surfaces/ ardour: [INFO]: Control surface protocol discovered: "Generic MIDI" [New Thread 0xb4047b90 (LWP 3514)] SSE2 detected [Thread 0xb4047b90 (LWP 3514) exited] [New Thread 0xb4047b90 (LWP 3516)] SSE2 detected loading bindings from /home/nowhiskey/.ardour2/ardour.bindings [New Thread 0xb2641b90 (LWP 3518)] [New Thread 0xb1e0bcb0 (LWP 3519)] Loading session /home/nowhiskey/Ardour2/rockets/sputnik using snapshot sputnik (1) [New Thread 0xb1d0ecb0 (LWP 3520)] [New Thread 0xb1c93cb0 (LWP 3521)] Loading history from '/home/nowhiskey/Ardour2/rockets/sputnik/sputnik.history'. [Thread 0xb1e0bcb0 (LWP 3519) exited] [Thread 0xb2641b90 (LWP 3518) exited] SSE2 detected [New Thread 0xae10db90 (LWP 3523)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb5f3e740 (LWP 3507)] 0xb6dcda17 in jack_client_deliver_request (client=0x0, req=0xbf8ad14c) at client.c:276 276 return client->control->deliver_request (client->control->deliver_arg, Current language: auto; currently c (gdb) thread apply all bt Thread 11 (Thread 0xae10db90 (LWP 3523)): #0 __gnu_cxx::new_allocator<boost::shared_ptr<ARDOUR::Region> >::allocate (this=0xae10cbf4, __n=0) at /usr/include/c++/4.2/ext/new_allocator.h:86 0000001 0xb7d53cd8 in std::_Vector_base<boost::shared_ptr<ARDOUR::Region>, std::allocator<boost::shared_ptr<ARDOUR::Region> > >::_M_allocate #(this=0xae10cbf4, __n=0) at /usr/include/c++/4.2/bits/stl_vector.h:128 #2 0xb7d53d15 in _Vector_base (this=0xae10cbf4, __n=0, __a=@0xae10cc00) at /usr/include/c++/4.2/bits/stl_vector.h:114 #3 0xb7d54950 in vector (this=0xae10cbf4, __x=@0xae10cc00) at #/usr/include/c++/4.2/bits/stl_vector.h:229 0000004 0xb7d54a01 in pair (this=0xae10cbf0, __a=@0xae10ccd4, __b=@0xae10cc00) #at /usr/include/c++/4.2/bits/stl_pair.h:85 0000005 0xb7d5865e in std::map<unsigned int, #std::vector<boost::shared_ptr<ARDOUR::Region>, #std::allocator<boost::shared_ptr<ARDOUR::Region> > >, std::less<unsigned #int>, std::allocator<std::pair<unsigned int const, #std::vector<boost::shared_ptr<ARDOUR::Region>, #std::allocator<boost::shared_ptr<ARDOUR::Region> > > > > >::operator[] ( this=0xae10ccac, __k=@0xae10ccd4) at #/usr/include/c++/4.2/bits/stl_map.h:350 #6 0xb7d4d674 in ARDOUR::AudioPlaylist::read (this=0x9ff2f20, #buf=0xb0c7f008, mixdown_buffer=0x12a36be0, gain_buffer=0x12a76be8, #start=67268736, cnt=65536, chan_n=0) at libs/ardour/audio_playlist.cc:168 #7 0xb7d277ca in ARDOUR::AudioDiskstream::read (this=0xa06f428, buf=0xb0c7f008, mixdown_buffer=0x12a36be0, gain_buffer=0x12a76be8, #start=@0xae10d044, cnt=65536, channel_info=0xa06f5c0, channel=0, reversed=false) at #libs/ardour/audio_diskstream.cc:1095 0000008 0xb7d28354 in ARDOUR::AudioDiskstream::_do_refill (this=0xa06f428, #mixdown_buffer=0x12a36be0, gain_buffer=0x12a76be8) at #libs/ardour/audio_diskstream.cc:1345 0000009 0xb7d2850d in ARDOUR::AudioDiskstream::do_refill_with_alloc #(this=0xa06f428) at libs/ardour/audio_diskstream.cc:1160 0000010 0xb7d266e1 in ARDOUR::AudioDiskstream::seek (this=0xa06f428, #frame=67268736, complete_refill=false) at #libs/ardour/audio_diskstream.cc:991 0000011 0xb7ee4f5c in ARDOUR::Session::non_realtime_stop (this=0x8faf230, #abort=false, on_entry=0, finished=@0xae10d233) at #libs/ardour/session_transport.cc:417 0000012 0xb7ee5b76 in ARDOUR::Session::engine_halted (this=0x8faf230) at #libs/ardour/session_transport.cc:1228 0000013 0xb7e87f19 in sigc::bound_mem_functor0<void, #ARDOUR::Session>::operator() (this=0xa135e5c) at #libs/sigc++2/sigc++/functors/mem_fun.h:1787 0000014 0xb7e87f40 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, #ARDOUR::Session> >::operator() (this=0xa135e58) at libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251 #15 0xb7e87f6c in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, ARDOUR::Session>, void>::call_it (rep=0xa135e40) at #libs/sigc++2/sigc++/functors/slot.h:103 0000016 0x084280b1 in sigc::internal::signal_emit0<void, sigc::nil>::emit #(impl=0x8d99128) at libs/sigc++2/sigc++/signal.h:772 #17 0x08428166 in sigc::signal0<void, sigc::nil>::emit (this=0x8a27070) at #libs/sigc++2/sigc++/signal.h:2667 0000018 0x08428179 in sigc::signal0<void, sigc::nil>::operator() #(this=0x8a27070) at libs/sigc++2/sigc++/signal.h:2675 0000019 0xb7d3908c in ARDOUR::AudioEngine::halted (arg=0x8a27048) at #libs/ardour/audioengine.cc:809 0000020 0xb6dd0dca in jack_client_thread (arg=0xb6af3d0) at client.c:1288 0000021 0xb6db5fd3 in start_thread () from /lib/libpthread.so.0 0000022 0xb6708a8e in clone () from /lib/libc.so.6 Thread 10 (Thread 0xb1c93cb0 (LWP 3521)): #0 0xb66ff62d in poll () from /lib/libc.so.6 0000001 0xb7eb8c92 in ARDOUR::Session::midi_thread_work (this=0x8faf230) at #libs/ardour/session_midi.cc:1220 #2 0xb7eb91e5 in ARDOUR::Session::_midi_thread_work (arg=0x8faf230) at #libs/ardour/session_midi.cc:1141 #3 0xb6db5fd3 in start_thread () from /lib/libpthread.so.0 0000004 0xb6708a8e in clone () from /lib/libc.so.6 Current language: auto; currently c++ Thread 9 (Thread 0xb1d0ecb0 (LWP 3520)): #0 0xb6db81a4 in pthread_mutex_lock () from /lib/libpthread.so.0 0000001 0xb76f877d in Glib::Mutex::lock (this=0x8faf534) at #libs/glibmm2/glibmm/thread.cc:213 #2 0x084a9656 in Lock (this=0xb1d0e360, mutex=@0x8faf534) at #libs/glibmm2/glibmm/thread.h:795 #3 0xb7e5c18a in ARDOUR::Session::butler_thread_work (this=0x8faf230) at #libs/ardour/session_butler.cc:362 0000004 0xb7e5c323 in ARDOUR::Session::_butler_thread_work (arg=0x8faf230) at #libs/ardour/session_butler.cc:159 0000005 0xb6db5fd3 in start_thread () from /lib/libpthread.so.0 #6 0xb6708a8e in clone () from /lib/libc.so.6 Thread 6 (Thread 0xb4047b90 (LWP 3516)): #0 0xb6dba550 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 0000001 0xb6dd1642 in mb_thread_func (arg=0x0) at messagebuffer.c:70 #2 0xb6db5fd3 in start_thread () from /lib/libpthread.so.0 #3 0xb6708a8e in clone () from /lib/libc.so.6 Thread 4 (Thread 0xb4e6cb90 (LWP 3512)): #0 0xb6dba550 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 0000001 0xb76f898d in Glib::Cond::wait (this=0x8af2738, mutex=@0xb7f937a8) at #libs/glibmm2/glibmm/thread.cc:362 #2 0xb7d1853f in ARDOUR::Analyser::work () at libs/ardour/analyser.cc:85 #3 0xb7d1868b in analyser_work () at libs/ardour/analyser.cc:49 0000004 0x08758033 in sigc::pointer_functor0<void>::operator() (this=0x8af27ac) #at libs/sigc++2/sigc++/functors/ptr_fun.h:77 0000005 0x0875804a in sigc::adaptor_functor<sigc::pointer_functor0<void> #>::operator() (this=0x8af27a8) at #>libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251 #6 0x08758066 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, #void>::call_it (rep=0x8af2790) at libs/sigc++2/sigc++/functors/slot.h:103 #7 0x083f2f8c in sigc::slot0<void>::operator() (this=0x8af2780) at #libs/sigc++2/sigc++/functors/slot.h:440 0000008 0xb76f9521 in call_thread_entry_slot (data=0x8af2780) at #libs/glibmm2/glibmm/thread.cc:43 0000009 0xb77704ff in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0 0000010 0x08af2780 in ?? () 0000011 0x08af27b8 in ?? () 0000012 0x00000000 in ?? () Thread 3 (Thread 0xb566cb90 (LWP 3511)): #0 0xb6dba550 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 0000001 0xb76f898d in Glib::Cond::wait (this=0x8ae0130, mutex=@0xb7f93c80) at #libs/glibmm2/glibmm/thread.cc:362 #2 0xb7ef380b in peak_thread_work () at libs/ardour/source_factory.cc:65 #3 0x08758033 in sigc::pointer_functor0<void>::operator() (this=0x8aebde4) #at libs/sigc++2/sigc++/functors/ptr_fun.h:77 0000004 0x0875804a in sigc::adaptor_functor<sigc::pointer_functor0<void> #>::operator() (this=0x8aebde0) at #>libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251 0000005 0x08758066 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, #void>::call_it (rep=0x8aebdc8) at libs/sigc++2/sigc++/functors/slot.h:103 #6 0x083f2f8c in sigc::slot0<void>::operator() (this=0x8aebdb8) at #libs/sigc++2/sigc++/functors/slot.h:440 #7 0xb76f9521 in call_thread_entry_slot (data=0x8aebdb8) at #libs/glibmm2/glibmm/thread.cc:43 0000008 0xb77704ff in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0 0000009 0x08aebdb8 in ?? () 0000010 0x08aebdf0 in ?? () 0000011 0x00000000 in ?? () Thread 2 (Thread 0xb5e6cb90 (LWP 3510)): #0 0xb6dba550 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 0000001 0xb76f898d in Glib::Cond::wait (this=0x8ae0130, mutex=@0xb7f93c80) at #libs/glibmm2/glibmm/thread.cc:362 #2 0xb7ef380b in peak_thread_work () at libs/ardour/source_factory.cc:65 #3 0x08758033 in sigc::pointer_functor0<void>::operator() (this=0x8aebaa4) #at libs/sigc++2/sigc++/functors/ptr_fun.h:77 0000004 0x0875804a in sigc::adaptor_functor<sigc::pointer_functor0<void> #>::operator() (this=0x8aebaa0) at #>libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251 0000005 0x08758066 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, #void>::call_it (rep=0x8aeba88) at libs/sigc++2/sigc++/functors/slot.h:103 #6 0x083f2f8c in sigc::slot0<void>::operator() (this=0x8aebb40) at #libs/sigc++2/sigc++/functors/slot.h:440 #7 0xb76f9521 in call_thread_entry_slot (data=0x8aebb40) at #libs/glibmm2/glibmm/thread.cc:43 0000008 0xb77704ff in ?? () from /usr/share/qt4/lib/libglib-2.0.so.0 0000009 0x08aebb40 in ?? () 0000010 0x08aebb50 in ?? () 0000011 0x00014080 in ?? () 0000012 0x00000005 in ?? () 0000013 0xb664cb9c in ?? () from /lib/libc.so.6 0000014 0xb6dc4ff4 in ?? () from /lib/libpthread.so.0 #15 0xb6db8140 in ?? () from /lib/libpthread.so.0 0000016 0xb6dc4ff4 in ?? () from /lib/libpthread.so.0 #17 0x00000000 in ?? () Thread 1 (Thread 0xb5f3e740 (LWP 3507)): #0 0xb6dcda17 in jack_client_deliver_request (client=0x0, req=0xbf8ad14c) at client.c:276 0000001 0xb6dce0c4 in jack_connect (client=0x0, source_port=0xa1cb16c "ardour:auditioner/out 2", destination_port=0xa1cb7c4 "system:playback_2") #at client.c:2157 #2 0xb7d38e2e in ARDOUR::AudioEngine::reconnect_to_jack (this=0x8a27048) at #libs/ardour/audioengine.cc:1231 #3 0x0841375f in ARDOUR_UI::reconnect_to_jack (this=0x898fb20) at #gtk2_ardour/ardour_ui.cc:3085 0000004 0x0840429f in sigc::bound_mem_functor0<void, ARDOUR_UI>::operator() #(this=0x8ecfdac) at libs/sigc++2/sigc++/functors/mem_fun.h:1787 0000005 0x084042b6 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, #ARDOUR_UI> >::operator() (this=0x8ecfda8) at #libs/sigc++2/sigc++/adaptors/adaptor_trait.h:251 #6 0x084042d2 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, #ARDOUR_UI>, void>::call_it (rep=0x8ecfd90) at #libs/sigc++2/sigc++/functors/slot.h:103 #7 0x083f2f8c in sigc::slot0<void>::operator() (this=0x8ecfb54) at #libs/sigc++2/sigc++/functors/slot.h:440 0000008 0xb76faccd in Glib::SignalProxyNormal::slot0_void_callback #(self=0x8ecd678, data=0x8ecfb50) at libs/glibmm2/glibmm/signalproxy.cc:95 0000009 0xb77ee9bf in g_cclosure_marshal_VOID__VOID () from #/usr/share/qt4/lib/libgobject-2.0.so.0 0000010 0xb77e16f9 in g_closure_invoke () from #/usr/share/qt4/lib/libgobject-2.0.so.0 0000011 0xb77f5fc3 in ?? () from /usr/share/qt4/lib/libgobject-2.0.so.0 0000012 0x08ecfdc0 in ?? () 0000013 0x00000000 in ?? () Current language: auto; currently c ... cheers, doc | ||||
| Tags | No tags attached. | ||||
|
|
this appears to be caused by JACK disconnecting ardour during the reconnection process, which is why this is difficult to reproduce. i have added a fix that should stop this particular crash (rev 3486), but there is still the general issue that AudioEngine::_jack can be reset to null from the JACK thread, asynchronously with respect to everything else. Hence, use of this pointer really needs to be made thread safe. |
|
|
I believe appropriate changes have been made to stop this bug happening. Any confirmation welcome. |
|
|
confirmed, ardour reconnects to jack w/out problems. cheers, doc |
|
|
Great, 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 |
|---|---|---|---|
| 2008-06-21 12:35 | nowhiskey | New Issue | |
| 2008-06-23 15:58 | paul | Note Added: 0005073 | |
| 2010-04-24 10:28 | cth103 | Category | bugs => bugs2 |
| 2010-04-24 10:32 | cth103 | Category | bugs2 => bugs |
| 2010-04-26 23:01 | cth103 | Note Added: 0007610 | |
| 2010-04-26 23:01 | cth103 | Status | new => feedback |
| 2010-05-06 11:31 | nowhiskey | Note Added: 0007803 | |
| 2010-05-06 11:41 | cth103 | cost | => 0.00 |
| 2010-05-06 11:41 | cth103 | Note Added: 0007810 | |
| 2010-05-06 11:41 | cth103 | Status | feedback => resolved |
| 2010-05-06 11:41 | cth103 | Resolution | open => fixed |
| 2010-05-06 11:41 | cth103 | Assigned To | => cth103 |
| 2020-04-19 20:13 | system | Note Added: 0021763 | |
| 2020-04-19 20:13 | system | Status | resolved => closed |