View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004664 | ardour | bugs | public | 2012-01-26 05:28 | 2020-04-19 20:16 |
| Reporter | tophatdave | Assigned To | cth103 | ||
| Priority | normal | Severity | crash | Reproducibility | random |
| Status | closed | Resolution | fixed | ||
| Target Version | 3.0 | ||||
| Summary | 0004664: Crash while editing MIDI notes - Assertion `event->delta_time_pulses >= 0' failed. | ||||
| Description | While doing some random editing, ardour crashes with an assert failure : Assertion `event->delta_time_pulses >= 0' failed. | ||||
| Additional Information | this happened to me twice in a span of 10 minutes of random midi editing. i thought it might be related to short duration notes so the second time (the one associated with the attached backtrace) i was zoomed way in. i'm not sure if that is related, however. | ||||
| Tags | No tags attached. | ||||
|
2012-01-26 05:28
|
midi edit crash 1_25.txt (12,144 bytes)
ardour-3.0: ../libs/evoral/src/libsmf/smf.c:465: smf_track_add_event: Assertion `event->delta_time_pulses >= 0' failed.
Program received signal SIGABRT, Aborted.
0xb7fe2430 in __kernel_vsyscall ()
(gdb) thread apply all backtrace
Thread 15 (Thread 0x96d7ec90 (LWP 11736)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb4a93736 in nanosleep () from /lib/tls/i686/cmov/libpthread.so.0
#2 0xb6083a62 in g_usleep () from /lib/libglib-2.0.so.0
#3 0xb61782ad in Glib::usleep(unsigned long) () from /usr/lib/libglibmm-2.4.so.1
#4 0xb756dcea in ARDOUR::AudioEngine::meter_thread (this=0x9d3dbf0) at ../libs/ardour/audioengine.cc:683
#5 0xb758fa4d in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator()(ARDOUR::AudioEngine*) const () from gtk2_ardour/../build/libs/ardour/libardour.so.3
#6 0xb758ac38 in void boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, ARDOUR::AudioEngine>&, boost::_bi::list0&, int) () from gtk2_ardour/../build/libs/ardour/libardour.so.3
#7 0xb7586162 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator()() ()
from gtk2_ardour/../build/libs/ardour/libardour.so.3
#8 0xb7580ebb in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > > >::operator()() const () from gtk2_ardour/../build/libs/ardour/libardour.so.3
#9 0xb757c61b 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(sigc::internal::slot_rep*) () from gtk2_ardour/../build/libs/ardour/libardour.so.3
#10 0xb616beb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#11 0xb6080def in ?? () from /lib/libglib-2.0.so.0
#12 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#13 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 14 (Thread 0x9ce5bb70 (LWP 11735)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb49ebb86 in poll () from /lib/tls/i686/cmov/libc.so.6
#2 0xb60674eb in g_poll () from /lib/libglib-2.0.so.0
#3 0xb605a0ac in ?? () from /lib/libglib-2.0.so.0
#4 0xb605a817 in g_main_loop_run () from /lib/libglib-2.0.so.0
#5 0xb61714b5 in Glib::MainLoop::run() () from /usr/lib/libglibmm-2.4.so.1
#6 0xb648717d in BaseUI::main_thread (this=0xa8a4d70) at ../libs/pbd/base_ui.cc:77
#7 0xb6488552 in sigc::bound_mem_functor0<void, BaseUI>::operator() (this=0xa8b0f24) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#8 0xb64883c2 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator() (this=0xa8b0f20) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#9 0xb6488132 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it (rep=0xa8b0f08) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
---Type <return> to continue, or q <return> to quit---
#10 0xb616beb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#11 0xb6080def in ?? () from /lib/libglib-2.0.so.0
#12 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#13 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 13 (Thread 0x98c8cc90 (LWP 11734)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb49ebb86 in poll () from /lib/tls/i686/cmov/libc.so.6
#2 0xb75f23f3 in ARDOUR::Butler::thread_work (this=0xa89c890) at ../libs/ardour/butler.cc:153
#3 0xb75f236a in ARDOUR::Butler::_thread_work (arg=0xa89c890) at ../libs/ardour/butler.cc:137
#4 0xb64bda3c in fake_thread_start (arg=0xa8a5f38) at ../libs/pbd/pthread_utils.cc:81
#5 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#6 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 12 (Thread 0x9a8b6b70 (LWP 11732)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb4a923e8 in sem_timedwait () from /lib/tls/i686/cmov/libpthread.so.0
#2 0xb4fd890d in ?? () from /usr/lib/libjack.so.0
#3 0xb4fc1587 in ?? () from /usr/lib/libjack.so.0
#4 0xb4fc4564 in ?? () from /usr/lib/libjack.so.0
#5 0xb4fbdb2d in ?? () from /usr/lib/libjack.so.0
#6 0xb756cf73 in ARDOUR::AudioEngine::process_thread (this=0x9d3dbf0) at ../libs/ardour/audioengine.cc:430
#7 0xb756c9cf in ARDOUR::AudioEngine::_process_thread (arg=0x9d3dbf0) at ../libs/ardour/audioengine.cc:341
#8 0xb4fbf610 in ?? () from /usr/lib/libjack.so.0
#9 0xb4fd8185 in ?? () from /usr/lib/libjack.so.0
#10 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#11 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 11 (Thread 0x9c5d9b70 (LWP 11731)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb4a92f5b in read () from /lib/tls/i686/cmov/libpthread.so.0
#2 0xb4fd9f05 in ?? () from /usr/lib/libjack.so.0
---Type <return> to continue, or q <return> to quit---
#3 0xb4fde605 in ?? () from /usr/lib/libjack.so.0
#4 0xb4fd8185 in ?? () from /usr/lib/libjack.so.0
#5 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#6 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 10 (Thread 0x9c65ab70 (LWP 11730)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb4a90015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2 0xb4fd99f7 in ?? () from /usr/lib/libjack.so.0
#3 0xb4fd14a7 in ?? () from /usr/lib/libjack.so.0
#4 0xb4fd8185 in ?? () from /usr/lib/libjack.so.0
#5 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#6 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 5 (Thread 0xb2564b70 (LWP 11725)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb4a90015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2 0xb616b3a8 in Glib::Cond::wait(Glib::Mutex&) () from /usr/lib/libglibmm-2.4.so.1
#3 0xb74f9d1b in ARDOUR::Analyser::work () at ../libs/ardour/analyser.cc:85
#4 0xb74f9a56 in analyser_work () at ../libs/ardour/analyser.cc:49
#5 0x09159f07 in sigc::pointer_functor0<void>::operator() (this=0x9bded34) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#6 0x09157df0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x9bded30) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#7 0x09155592 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x9bded18) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#8 0xb616beb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#9 0xb6080def in ?? () from /lib/libglib-2.0.so.0
#10 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#11 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 4 (Thread 0xb2d65b70 (LWP 11724)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb4a90015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2 0xb616b3a8 in Glib::Cond::wait(Glib::Mutex&) () from /usr/lib/libglibmm-2.4.so.1
---Type <return> to continue, or q <return> to quit---
#3 0xb79fb411 in peak_thread_work () at ../libs/ardour/source_factory.cc:68
#4 0x09159f07 in sigc::pointer_functor0<void>::operator() (this=0x9bdefa4) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#5 0x09157df0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x9bdefa0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#6 0x09155592 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x9bdef88) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#7 0xb616beb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#8 0xb6080def in ?? () from /lib/libglib-2.0.so.0
#9 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#10 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 3 (Thread 0xb3566b70 (LWP 11723)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb4a90015 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2 0xb616b3a8 in Glib::Cond::wait(Glib::Mutex&) () from /usr/lib/libglibmm-2.4.so.1
#3 0xb79fb411 in peak_thread_work () at ../libs/ardour/source_factory.cc:68
#4 0x09159f07 in sigc::pointer_functor0<void>::operator() (this=0x9bdf0e4) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#5 0x09157df0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x9bdf0e0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#6 0x09155592 in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x9bdf0c8) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#7 0xb616beb2 in ?? () from /usr/lib/libglibmm-2.4.so.1
#8 0xb6080def in ?? () from /lib/libglib-2.0.so.0
#9 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#10 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 2 (Thread 0xb3d67b70 (LWP 11722)):
#0 0xb7fe2430 in __kernel_vsyscall ()
#1 0xb49c3ce6 in nanosleep () from /lib/tls/i686/cmov/libc.so.6
#2 0xb49f344c in usleep () from /lib/tls/i686/cmov/libc.so.6
#3 0x093d1897 in gui_event_loop (ptr=0x0) at ../gtk2_ardour/linux_vst_gui_support.cc:363
#4 0xb4a8b96e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#5 0xb49f9a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 1 (Thread 0xb4206780 (LWP 11717)):
#0 0xb7fe2430 in __kernel_vsyscall ()
---Type <return> to continue, or q <return> to quit---
#1 0xb4956651 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xb4959a82 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0xb494f718 in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
#4 0xb63afd86 in smf_track_add_event (track=0xa8c0bd0, event=0xb430aa0) at ../libs/evoral/src/libsmf/smf.c:465
#5 0xb63b69e8 in smf_track_add_event_pulses (track=0xa8c0bd0, event=0xb430aa0, pulses=2147811616) at ../libs/evoral/src/libsmf/smf_tempo.c:425
#6 0xb63b6928 in smf_track_add_event_delta_pulses (track=0xa8c0bd0, event=0xb430aa0, delta=2147483648) at ../libs/evoral/src/libsmf/smf_tempo.c:409
#7 0xb67fbe6b in Evoral::SMF::append_event_delta (this=0xa8b5934, delta_t=2147483648, size=3, buf=0xb46fec0 "\200B@\v\300\373G\v\020", note_id=78)
at ../libs/evoral/src/SMF.cpp:334
#8 0xb79ede22 in ARDOUR::SMFSource::append_event_unlocked_beats (this=0xa8b5820, ev=...) at ../libs/ardour/smf_source.cc:329
#9 0xb775e097 in ARDOUR::MidiModel::sync_to_source (this=0xa8b45e8) at ../libs/ardour/midi_model.cc:1400
#10 0xb7790832 in ARDOUR::MidiSource::session_saved (this=0xa8b5820) at ../libs/ardour/midi_source.cc:402
#11 0xb798b0c9 in ARDOUR::Session::save_state (this=0xa8993b0, snapshot_name=..., pending=true, switch_to_snapshot=false) at ../libs/ardour/session_state.cc:777
#12 0xb798a018 in ARDOUR::Session::maybe_write_autosave (this=0xa8993b0) at ../libs/ardour/session_state.cc:626
#13 0x08bcfa9d in ARDOUR_UI::autosave_session (this=0x9a21cc0) at ../gtk2_ardour/ardour_ui.cc:626
#14 0x08bf9d86 in sigc::bound_mem_functor0<int, ARDOUR_UI>::operator() (this=0xa8c069c) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#15 0x08bf478c in sigc::adaptor_functor<sigc::bound_mem_functor0<int, ARDOUR_UI> >::operator() (this=0xa8c0698) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#16 0x08beffbc in sigc::internal::slot_call0<sigc::bound_mem_functor0<int, ARDOUR_UI>, bool>::call_it (rep=0xa8c0680) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:103
#17 0xb617032d in ?? () from /usr/lib/libglibmm-2.4.so.1
#18 0xb6056d5c in ?? () from /lib/libglib-2.0.so.0
#19 0xb60565e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#20 0xb605a2d8 in ?? () from /lib/libglib-2.0.so.0
#21 0xb605a817 in g_main_loop_run () from /lib/libglib-2.0.so.0
#22 0xb5d7d3c9 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#23 0xb56883a7 in Gtk::Main::run_impl() () from /usr/lib/libgtkmm-2.4.so.1
#24 0xb56881a2 in Gtk::Main::run() () from /usr/lib/libgtkmm-2.4.so.1
#25 0xb6678089 in Gtkmm2ext::UI::run (this=0x9a21cc0, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:266
#26 0x08fcc33f in main (argc=1, argv=0xbfffe9d4) at ../gtk2_ardour/main.cc:555
|
|
|
svn 11353 |
|
|
this backtrace indicates that the crash occurred while performing an autosave. however, i believe the root cause is a midi copy/paste operation whose paste required extension of the midi region. the region extension logic seems wrong at this point. as far as i can tell, any paste operation that requires a region extension is extending the region way too much. |
|
2012-02-02 00:42
|
patch_4664.txt (589 bytes)
Index: midi_region_view.cc
===================================================================
--- midi_region_view.cc (revision 11419)
+++ midi_region_view.cc (working copy)
@@ -3251,7 +3251,7 @@
DEBUG_TRACE (DEBUG::CutNPaste, string_compose ("Paste extended region from %1 to %2\n", region_end, end_frame));
_region->clear_changes ();
- _region->set_length (end_frame);
+ _region->set_length (end_frame - _region->position());
trackview.session()->add_command (new StatefulDiffCommand (_region));
}
|
|
|
i have attached a patch for the region being extended too far when a paste operation extends beyond the current region end. not sure yet whether this behavior completely explains the original crash, however. |
|
|
patch applied. |
|
|
got this to happen again. i believe it is related to double-clicking in a midi region in "pencil mode". the double-click both draws a note and switches internal mode off, which is probably incorrect behavior. |
|
|
at this point, i'm not sure whether i'm seein issues with local changes or not. i need to go back to SVN and retest. |
|
|
i reverted to SVN and can reproduce this fairly easily by double-clicking in MIDI draw mode. Interestingly, the crash seems to happen not when the double-click is being processed but, rather, when i click the mouse mode button to reenter MIDI draw mode. |
|
|
the root problem of the crash is the creation of malformed notes (that are detected as malformed in later processing in the context of, for example, autosave) due to mishandling of the sequence of double click events in midi_region_view.cc . The events associated with a double click are press - release - press - dblclick - release |
|
|
we need to continue to support single click = note draw in midi draw mode so dbl-click cannot be used to exit draw mode. From Paul via chat, the cases that need to be looked at are - draw mode - object mode coupled with Keyboard::insert_note_modifier() |
|
2012-02-16 01:47
|
patch_dblclick.diff (742 bytes)
Index: midi_region_view.cc
===================================================================
--- midi_region_view.cc (revision 11491)
+++ midi_region_view.cc (working copy)
@@ -330,7 +330,13 @@
}
if (ev->type == GDK_2BUTTON_PRESS) {
- return trackview.editor().toggle_internal_editing_from_double_click (ev);
+ // cannot use double-click to exit internal mode if single-click is being used
+ MouseMode m = trackview.editor().current_mouse_mode();
+
+ if ((m != MouseObject || !Keyboard::modifier_state_contains (ev->button.state, Keyboard::insert_note_modifier())) &&
+ (m != MouseDraw)) {
+ return trackview.editor().toggle_internal_editing_from_double_click (ev);
+ }
}
if (!trackview.editor().internal_editing()) {
|
|
|
the patch i have uploaded should kill off this ticket once and for all. seems to suppress the turning off of internal mode when in draw mode or object mode with insert modifier (ctrl on my machine) depressed. |
|
|
Second patch applied to SVN 12929. Thanks very much! |
|
|
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 |
|---|---|---|---|
| 2012-01-26 05:28 | tophatdave | New Issue | |
| 2012-01-26 05:28 | tophatdave | File Added: midi edit crash 1_25.txt | |
| 2012-01-26 05:30 | tophatdave | Note Added: 0012673 | |
| 2012-01-26 08:51 | cth103 | cost | => 0.00 |
| 2012-01-26 08:51 | cth103 | Target Version | => 3.0-beta3 |
| 2012-02-01 18:46 | tophatdave | Note Added: 0012740 | |
| 2012-02-02 00:42 | tophatdave | File Added: patch_4664.txt | |
| 2012-02-02 00:44 | tophatdave | Note Added: 0012741 | |
| 2012-02-02 03:11 | paul | Note Added: 0012742 | |
| 2012-02-10 16:01 | tophatdave | Note Added: 0012776 | |
| 2012-02-10 16:22 | tophatdave | Note Added: 0012777 | |
| 2012-02-10 16:46 | tophatdave | Note Added: 0012778 | |
| 2012-02-14 17:20 | paul | Target Version | 3.0-beta3 => 3.0 beta4 |
| 2012-02-15 16:00 | tophatdave | Note Added: 0012806 | |
| 2012-02-15 16:19 | tophatdave | Note Added: 0012807 | |
| 2012-02-16 01:47 | tophatdave | File Added: patch_dblclick.diff | |
| 2012-02-16 01:51 | tophatdave | Note Added: 0012809 | |
| 2012-05-23 15:09 | cth103 | Target Version | 3.0 beta4 => 3.0 |
| 2012-06-25 21:19 | cth103 | Note Added: 0013708 | |
| 2012-06-25 21:19 | cth103 | Status | new => resolved |
| 2012-06-25 21:19 | cth103 | Resolution | open => fixed |
| 2012-06-25 21:19 | cth103 | Assigned To | => cth103 |
| 2020-04-19 20:16 | system | Note Added: 0022945 | |
| 2020-04-19 20:16 | system | Status | resolved => closed |