View Issue Details

IDProjectCategoryView StatusLast Update
0005024ardourbugspublic2020-04-19 20:16
Reporterwferi Assigned Todrobilla  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Target Version3.0 
Summary0005024: crash triggered by MIDI feedback and on-the-fly note addition
DescriptionThis is how to trigger an assertion:

1. create a new session with default settings
2. add a MIDI track
3. make a feedback connection with QJackCtl from MIDI 1/midi_out 1 to MIDI 1/midi_in 1
3. start recording into the new track
4. try to draw a MIDI note into the region being created (it won't persist)
5. stop the transport

ardour-3.0: /usr/include/boost/smart_ptr/shared_ptr.hpp:424: T* boost::shared_ptr<T>::operator->() const [with T = const ARDOUR::MidiSource]: Assertion `px != 0' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffd1d4c820 (LWP 4199)]
0x00007fffec73a475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt full
#0 0x00007fffec73a475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
0000001 0x00007fffec73d6f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2 0x00007fffec733621 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#3 0x00007ffff74727ed in boost::shared_ptr<ARDOUR::MidiSource const>::operator-> (
    this=0x7fffd1d4ad90) at /usr/include/boost/smart_ptr/shared_ptr.hpp:424
        __PRETTY_FUNCTION__ = "T* boost::shared_ptr<T>::operator->() const [with T = const ARDOUR::MidiSource]"
0000004 0x00007ffff746795b in ARDOUR::MidiModel::NoteDiffCommand::get_state (this=0x4a2f320)
    at ../libs/ardour/midi_model.cc:729
        diff_command = 0x4a5d830
        changes = 0x4a2afd0
        added_notes = 0x4a5d8b0
        removed_notes = 0x7fffed1c7480
0000005 0x00007ffff5bfca37 in UndoTransaction::get_state (this=0x4a2ae10) at ../libs/pbd/undo.cc:148
        node = 0x4a5d960
        ss = <incomplete type>
        it = {_M_node = 0x2136be0}
#6 0x00007ffff5bfd520 in UndoHistory::get_state (this=0x29de558, depth=19) at ../libs/pbd/undo.cc:357
        it = {_M_node = 0x4a5d270}
        in_order = {<std::_List_base<UndoTransaction*, std::allocator<UndoTransaction*> >> = {
            _M_impl = {<std::allocator<std::_List_node<UndoTransaction*> >> = {<__gnu_cxx::new_allocator<std::_List_node<UndoTransaction*> >> = {<No data fields>}, <No data fields>}, _M_node = {
                _M_next = 0x4a5d270, _M_prev = 0x4a5d270}}}, <No data fields>}
        node = 0x4a1bcc0
#7 0x00007ffff7639b43 in ARDOUR::Session::save_history (this=0x29dce30, snapshot_name=...)
    at ../libs/ardour/session_state.cc:3218
        tree = {_filename = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffed1c7498 ""}}, _root = 0x0, _doc = 0x0, _compression = 0}
        history_filename = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x4a79a88 "crash.history"}}
        backup_filename = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x4a5ce68 "crash.history.bak"}}
        xml_path = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x4a5ced8 "/home/wferi/ardour/crash/crash.history"}}
        backup_path = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x4a7a1e8 "/home/wferi/ardour/crash/crash.history.bak"}}
0000008 0x00007ffff762b2d2 in ARDOUR::Session::save_state (this=0x29dce30, snapshot_name=...,
    pending=false, switch_to_snapshot=false) at ../libs/ardour/session_state.cc:828
        was_dirty = false
        tree = {_filename = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x4a5d0c8 "/home/wferi/ardour/crash/crash.tmp"}}, _root = 0x4a41c20,
          _doc = 0x0, _compression = 0}
        xml_path = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x4a5cda8 "/home/wferi/ardour/crash/crash.ardour"}}
        tmp_path = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x4a5d0c8 "/home/wferi/ardour/crash/crash.tmp"}}
0000009 0x00007ffff766810c in ARDOUR::Session::non_realtime_stop (this=0x29dce30, abort=false,
    on_entry=1, finished=@0x7fffd1d4b9ef: true) at ../libs/ardour/session_transport.cc:632
        xnow = 1342703448
        saved = false
        ptw = 3
        rl = {px = 0x7fffdc017570, pn = {pi_ = 0x7fffdc017550}}
        now = 0x7fffeca8e3a0
        did_record = true
        r = {px = 0x7fffdc017570, pn = {pi_ = 0x7fffdc017550}}
        auto_return_enabled = false
0000010 0x00007ffff7666d8f in ARDOUR::Session::butler_transport_work (this=0x29dce30)
    at ../libs/ardour/session_transport.cc:363
        on_entry = 1
        finished = true
        ptw = 3
        r = {px = 0x7fffdc017570, pn = {pi_ = 0x7fffdc017550}}
0000011 0x00007ffff733dbc2 in ARDOUR::Butler::thread_work (this=0x2944f50) at ../libs/ardour/butler.cc:212
        rl = {px = 0x7fffdc017570, pn = {pi_ = 0x7fffdc017550}}
        err = 0
        pfd = {{fd = 34, events = 25, revents = 1}}
        disk_work_outstanding = false
        i = {_M_node = 0x7fffdc017570}
0000012 0x00007ffff733d85b in ARDOUR::Butler::_thread_work (arg=0x2944f50) at ../libs/ardour/butler.cc:134
No locals.
0000013 0x00007ffff5beb016 in fake_thread_start (arg=0x43964f0) at ../libs/pbd/pthread_utils.cc:80
        ts = 0x43964f0
        thread_work = 0x7ffff733d7ea <ARDOUR::Butler::_thread_work(void*)>
        thread_arg = 0x2944f50
0000014 0x00007fffeca95b50 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#15 0x00007fffec7e06dd in clone () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
0000016 0x0000000000000000 in ?? ()
No symbol table info available.
Additional Informationsvn revision: 13053
TagsNo tags attached.

Activities

drobilla

2014-12-17 07:52

developer   ~0016049

Fixed in 5ee4a5d56a55c0300d68210c5588659a0cd86b41

system

2020-04-19 20:16

developer   ~0023123

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
2012-07-19 13:16 wferi New Issue
2012-07-21 02:59 cth103 cost => 0.00
2012-07-21 02:59 cth103 Target Version => 3.0
2014-12-17 07:35 drobilla Assigned To => drobilla
2014-12-17 07:35 drobilla Status new => resolved
2014-12-17 07:35 drobilla Resolution open => fixed
2014-12-17 07:52 drobilla Note Added: 0016049
2020-04-19 20:16 system Note Added: 0023123
2020-04-19 20:16 system Status resolved => closed