View Issue Details

IDProjectCategoryView StatusLast Update
0006057ardourbugspublic2020-04-19 20:16
Reporterpablomme Assigned Todrobilla  
PrioritynormalSeveritycrashReproducibilitysometimes
Status closedResolutionfixed 
Summary0006057: Crash when recording audio and MIDI
DescriptionI have encountered a crashing bug when recording audio and MIDI simultaneously (namely three audio tracks and one MIDI track attached to an electronic drumkit) with more-or-less recent GIT versions of Ardour. The crash occurs when I press the spacebar to stop the recording 3--5 minutes after starting. The resulting .mid file is often of zero length, while the .wav files seem to contain the audio all the way to the point where the crash occured.

I've tried to reproduce this bug with an un-optimized compilation but I didn't seem to be able to trigger it. However I have managed to reproduce the crash with an optimized build with debugging symbols run under gdb; the backtrace is under "additional information".

I'm running Ardour on 64-bit Ubuntu 14.04, and I'm using a Presonus Audiobox 1818VSL, in case that helps.
Additional InformationBacktrace (GIT commit b52d8e5):

Program received signal SIGSEGV, Segmentation fault.
MidiStreamView::display_region (this=this@entry=0x5702800,
    region_view=region_view@entry=0xa973600, load_model=load_model@entry=true)
    at ../gtk2_ardour/midi_streamview.cc:188
188 source->model()->highest_note());
(gdb) bt
#0 MidiStreamView::display_region (this=this@entry=0x5702800,
    region_view=region_view@entry=0xa973600, load_model=load_model@entry=true)
    at ../gtk2_ardour/midi_streamview.cc:188
0000001 0x0000000000904600 in MidiStreamView::add_region_view_internal (
    this=0x5702800, r=..., wait_for_data=<optimised out>,
    recording=<optimised out>) at ../gtk2_ardour/midi_streamview.cc:155
#2 0x0000000000b27aa0 in StreamView::add_region_view (this=0x5702800, wr=...)
    at ../gtk2_ardour/streamview.cc:171
#3 0x0000000000b2ad85 in operator() (a1=..., p=<optimised out>,
    this=<optimised out>) at /usr/include/boost/bind/mem_fn_template.hpp:165
0000004 operator()<boost::_mfi::mf1<void, StreamView, boost::weak_ptr<ARDOUR::Region> >, boost::_bi::list1<boost::weak_ptr<ARDOUR::Region>&> > (
    a=<synthetic pointer>, f=..., this=<optimised out>)
    at /usr/include/boost/bind/bind.hpp:313
0000005 operator()<boost::weak_ptr<ARDOUR::Region> > (a1=..., this=<optimised out>)
    at /usr/include/boost/bind/bind_template.hpp:32
#6 boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, StreamView, boost::weak_ptr<ARDOUR::Region> >, boost::_bi::list2<boost::_bi::value<StreamView*>, boost::arg<1> > >, void, boost::weak_ptr<ARDOUR::Region> >::invoke (function_obj_ptr=..., a0=...)
    at /usr/include/boost/function/function_template.hpp:153
#7 0x0000000000b0c437 in operator() (a0=..., this=<optimised out>)
    at /usr/include/boost/function/function_template.hpp:767
0000008 operator()<boost::function<void(boost::weak_ptr<ARDOUR::Region>)>, boost::_bi::list0> (a=<synthetic pointer>, f=..., this=<optimised out>)
    at /usr/include/boost/bind/bind.hpp:253
0000009 operator() (this=<optimised out>)
    at /usr/include/boost/bind/bind_template.hpp:20
0000010 boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<boost::_bi::unspecified, boost::function<void (boost::weak_ptr<ARDOUR::Region>)>, boost::_bi::list1<boost::_bi::value<boost::weak_ptr<ARDOUR::Region> > > >, void>::invoke(boost::detail::function::function_buffer&) (function_obj_ptr=...)
    at /usr/include/boost/function/function_template.hpp:153
0000011 0x00002aaaabec08e0 in operator() (this=0x2aab283efd30)
    at /usr/include/boost/function/function_template.hpp:767
0000012 Gtkmm2ext::UI::do_request (this=<optimised out>, req=0x2aab283efd20)
    at ../libs/gtkmm2ext/gtk_ui.cc:453
0000013 0x00002aaaabec545a in AbstractUI<Gtkmm2ext::UIRequest>::handle_ui_requests
    (this=0x15e5920) at /large/pablo/tmp/ardour/libs/pbd/pbd/abstract_ui.cc:301
0000014 0x00002aaaac158be7 in BaseUI::request_handler (this=0x15e5920,
    ioc=<optimised out>) at ../libs/pbd/base_ui.cc:164
#15 0x00002aaaac83688c in Glib::IOSource::dispatch(sigc::slot_base*) ()
   from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
0000016 0x00002aaaac83635f in Glib::Source::dispatch_vfunc(_GSource*, int (*)(void*), void*) () from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
#17 0x00002aaaacef9ce5 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
0000018 0x00002aaaacefa048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
0000019 0x00002aaaacefa30a in g_main_loop_run ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
0000020 0x00002aaaad2e4447 in gtk_main ()
   from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000021 0x00002aaaabebf2f6 in Gtkmm2ext::UI::run (this=this@entry=0x15e5920,
    old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:278
0000022 0x000000000064557d in main (argc=1, argv=0x7fffffffe138)
    at ../gtk2_ardour/main.cc:281
TagsNo tags attached.

Activities

drobilla

2014-12-06 21:49

developer   ~0016021

I can't reproduce this issue, but at least fixed the crash in 9f5023175f60d0c9470f799530e2c6077629f65e

The issue may persist but only result in a region not being shown. Please amend ticket if you find some more information or a reliable reproduction.

pablomme

2014-12-10 16:27

reporter   ~0016022

Thanks for the fix. Could this be a race condition with a thread trying to access the contents of the MIDI track when the other is not yet done instantiating it? In any case, this is a minor problem now that it doesn't crash Ardour.

drobilla

2014-12-23 19:25

developer   ~0016079

Something like that. It was a locking issue. I'm pretty sure this should be truly fixed now. Feel free to re-open if not.

system

2020-04-19 20:16

developer   ~0023346

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.

Issue History

Date Modified Username Field Change
2014-12-03 21:55 pablomme New Issue
2014-12-06 21:49 drobilla Note Added: 0016021
2014-12-06 21:49 drobilla Assigned To => drobilla
2014-12-06 21:49 drobilla Status new => feedback
2014-12-06 21:49 drobilla Resolution open => fixed
2014-12-10 16:27 pablomme Note Added: 0016022
2014-12-23 19:25 drobilla Note Added: 0016079
2014-12-23 19:25 drobilla Status feedback => resolved
2020-04-19 20:16 system Note Added: 0023346
2020-04-19 20:16 system Status resolved => closed