View Issue Details

IDProjectCategoryView StatusLast Update
0006836ardourbugspublic2016-10-03 08:57
Reporterap1325 Assigned To 
PriorityhighSeveritycrashReproducibilityalways
Status closedResolutionfixed 
PlatformLinuxOSKXStudioOS VersionUbuntu 14.04.4
Product Version4.7 
Summary0006836: Ardour crashes when pressing and releasing the delete key while dragging a note.
DescriptionOn a midi track if you try to drag notes on internal edit mode, but then realize you want to delete a key and press and release the delete key while you are still dragging the note, Ardour crashes. I happes almost every time if not always. You would be surprised of how often this happens to some people while editing midi in a rush.
Steps To Reproduce1.- Just open Ardour and make a MIDI track.
2.- Record or draw notes on it.
3.- Click on a midi note without releasing the left mouse button, and move the MIDI note to another position on the screen on the same MIDI track it was before.
4.- Without having released the left mouse button press and release the delete key.
5.- Now release the left mouse button and see how Ardour closes without a warning.

It happened five out of seven times the last time I checked on my computer so you should have no problem to reproduce the crash.
Additional InformationIntel core i3, 16gb DDR3 ram memory, two HDDs (180Gb and 500Gb) , GT520 Nvidia Graphics card, USB Mbox2 audio interface.
TagsNo tags attached.

Relationships

related to 0006602 new crash in undo if two operations are performed at the same time 

Activities

tartina

2016-03-28 13:32

reporter   ~0018082

Maybe related to 0006602.
See also https://github.com/Ardour/ardour/pull/150

timbyr

2016-09-11 23:26

developer   ~0018601

I can't reproduce this issue with version 5.3, can you please re-test and confirm whether this is now fixed.

tartina

2016-09-12 12:03

reporter   ~0018612

I can still reproduce this issue with 5.3.70 compiled on Fedora 24 x86_64.
I will try to apply this patch https://github.com/Ardour/ardour/pull/150/commits/a66b6f5cc5bea3e56e2705a9ece2a2355b771dc2 and check again.

This is the backtrace:

Thread 1 "ardour-5.3.70" received signal SIGSEGV, Segmentation fault.
0x00000000006c083f in boost::detail::atomic_increment (pw=0x89c718 <SimpleMementoCommandBinder<SelectionMemento>::object_died()+8>)
    at /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:66
66 );
#0 0x00000000006c083f in boost::detail::atomic_increment(int*) (pw=0x89c718 <SimpleMementoCommandBinder<SelectionMemento>::object_died()+8>)
    at /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:66
0000001 0x00000000006c0862 in boost::detail::sp_counted_base::add_ref_copy() (this=0x89c710 <SimpleMementoCommandBinder<SelectionMemento>::object_died()>) at /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:134
#2 0x00000000006c08b5 in boost::detail::shared_count::shared_count(boost::detail::shared_count const&) (this=0x7fffffffc1b8, r=...)
    at /usr/include/boost/smart_ptr/detail/shared_count.hpp:484
#3 0x0000000000846c83 in boost::shared_ptr<Evoral::Note<Evoral::Beats> >::shared_ptr(boost::shared_ptr<Evoral::Note<Evoral::Beats> > const&) (this=0x7fffffffc1b0, r=...) at /usr/include/boost/smart_ptr/shared_ptr.hpp:405
0000004 0x0000000000846c43 in NoteBase::note() const (this=0x6cd7f50) at ../gtk2_ardour/note_base.h:100
0000005 0x0000000000932482 in NoteDrag::total_dx(unsigned int) const (this=0x1e57e60, state=256) at ../gtk2_ardour/editor_drag.cc:5588
#6 0x0000000000932de9 in NoteDrag::finished(_GdkEvent*, bool) (this=0x1e57e60, ev=0x1dd9ea0, moved=true) at ../gtk2_ardour/editor_drag.cc:5723
#7 0x0000000000915991 in Drag::end_grab(_GdkEvent*) (this=0x1e57e60, event=0x1dd9ea0) at ../gtk2_ardour/editor_drag.cc:318
0000008 0x0000000000915212 in DragManager::end_grab(_GdkEvent*) (this=0x39abec0, e=0x1dd9ea0) at ../gtk2_ardour/editor_drag.cc:157
0000009 0x000000000090e8ac in Editor::track_canvas_button_release_event(_GdkEventButton*) (this=0x3aa4130, event=0x1dd9ea0)
    at ../gtk2_ardour/editor_canvas_events.cc:183
0000010 0x00000000008b291c in sigc::bound_mem_functor1<bool, Editor, _GdkEventButton*>::operator()(_GdkEventButton* const&) const (this=0x3865308, _A_a1=@0x7fffffffc398: 0x1dd9ea0) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:2064
0000011 0x00000000008a9387 in sigc::adaptor_functor<sigc::bound_mem_functor1<bool, Editor, _GdkEventButton*> >::operator()<_GdkEventButton* const&>(_GdkEventButton* const&) const (this=0x3865300, _A_arg1=@0x7fffffffc398: 0x1dd9ea0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:89
0000012 0x00000000008a0794 in sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, Editor, _GdkEventButton*>, bool, _GdkEventButton*>::call_it(sigc::internal::slot_rep*, _GdkEventButton* const&) (rep=0x38652d0, a_1=@0x7fffffffc398: 0x1dd9ea0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:149
0000013 0x00007ffff115642b in (anonymous namespace)::Widget_signal_button_release_event_callback(_GtkWidget*, _GdkEventButton*, void*) ()
    at /lib64/libgtkmm-2.4.so.1
0000014 0x00007ffff307d54e in _gtk_marshal_BOOLEAN__BOXED () at /lib64/libgtk-x11-2.0.so.0
#15 0x00007ffff3ce73e5 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
0000016 0x00007ffff3cf9503 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
#17 0x00007ffff3d01b8f in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
0000018 0x00007ffff3d0243f in g_signal_emit () at /lib64/libgobject-2.0.so.0
0000019 0x00007ffff31ae01c in gtk_widget_event_internal () at /lib64/libgtk-x11-2.0.so.0
0000020 0x00007ffff307b7f4 in gtk_propagate_event () at /lib64/libgtk-x11-2.0.so.0
0000021 0x00007ffff307bbc3 in gtk_main_do_event () at /lib64/libgtk-x11-2.0.so.0
0000022 0x00007ffff2cd757c in gdk_event_dispatch () at /lib64/libgdk-x11-2.0.so.0
0000023 0x00007ffff3a136ba in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#24 0x00007ffff3a13a70 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
0000025 0x00007ffff3a13d92 in g_main_loop_run () at /lib64/libglib-2.0.so.0
0000026 0x00007ffff307ac0a in gtk_main () at /lib64/libgtk-x11-2.0.so.0

tartina

2016-09-12 12:20

reporter   ~0018614

I applied my patch https://github.com/Ardour/ardour/pull/150/commits/a66b6f5cc5bea3e56e2705a9ece2a2355b771dc2
and the crash is gone, but because you can no more delete the midi note while dragging.
That was a workaround...

timbyr

2016-09-13 11:50

developer   ~0018625

OK, I can easily reproduce this. PEBKAC on my part.

I'll have a look at your fix at first opportunity.

ap1325

2016-09-17 02:21

reporter   ~0018670

Last edited: 2016-09-17 02:23

I recently upgraded to Ubuntu 16.04.1 LTS and on self compiled Ardour 5.3.30 "Music for Films" (rev 5.3-30-gab76a49) Intel 64-bit - debug.

I can still reproduce this crash.

I have not tried your fix because I do not know how to apply patches.

timbyr

2016-09-17 04:37

developer   ~0018671

I have committed tartina's fix for this issue to master as e2b72419 which should be included in a nightly build >= 5.3.113

So this issue should now be fixed, please confirm and if so set bug status to resolved, thanks.

ap1325

2016-10-03 08:54

reporter   ~0018746

I have just compiled Ardour 5.4.5 "In a Land of Clear Colours" (rev 5.4-5-g52b6ad1) Intel 64-bit-debug and the issue has being fixed.

Setting bug status to resolved.

Thank you Ardour developers for the hard work.

ap1325

2016-10-03 08:57

reporter   ~0018747

Confirming
Tried Ardour 5.4.5 "In a Land of Clear Colours" (rev 5.4-5-g52b6ad1)
Intel 64-bit - debug

And the issue has being fixed.

Issue History

Date Modified Username Field Change
2016-03-26 00:32 ap1325 New Issue
2016-03-28 13:32 tartina Note Added: 0018082
2016-03-29 18:58 x42 Relationship added related to 0006602
2016-09-11 23:26 timbyr Note Added: 0018601
2016-09-12 12:03 tartina Note Added: 0018612
2016-09-12 12:20 tartina Note Added: 0018614
2016-09-13 11:50 timbyr Note Added: 0018625
2016-09-13 11:50 timbyr Status new => confirmed
2016-09-17 02:21 ap1325 Note Added: 0018670
2016-09-17 02:23 ap1325 Note Edited: 0018670
2016-09-17 04:37 timbyr Note Added: 0018671
2016-10-03 08:54 ap1325 Note Added: 0018746
2016-10-03 08:57 ap1325 Note Added: 0018747
2016-10-03 08:57 ap1325 Status confirmed => closed
2016-10-03 08:57 ap1325 Resolution open => fixed