View Issue Details

IDProjectCategoryView StatusLast Update
0007486ardourbugspublic2017-10-11 13:46
Reporteroswaldm Assigned To 
PrioritynormalSeveritymajorReproducibilityrandom
Status newResolutionopen 
PlatformIntel 64bitOSUbuntu StudioOS Version14.04
Product Version5.12 
Summary0007486: Assertins when cuting regions
DescriptionSometimes Ardour crashes when cutting reagions with the cut tool. When using the split feature, no crashes occur.

Assertion:

ardour-5.12.0: ../gtk2_ardour/editor_drag.cc:829: virtual void RegionMotionDrag::motion(GdkEvent*, bool): Assertion `!_views.empty ()' failed.


See attached backtrace for more information
Steps To ReproduceNot always reproducible. Trying to cut a region via click-drag to the exact point and then letting go of the mouse button. On my machine, aber about 5-10 cuts it crashes.
Additional InformationBacktrace of the assertion is attached. Ardour was compiled with optimization.
TagsNo tags attached.

Activities

oswaldm

2017-10-07 19:02

reporter  

Ardour_backtrace.txt (6,412 bytes)   
ardour-5.12.0: ../gtk2_ardour/editor_drag.cc:829: virtual void RegionMotionDrag::motion(GdkEvent*, bool): Assertion `!_views.empty ()' failed.

Program received signal SIGABRT, Aborted.
0x00007fffef578c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007fffef578c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007fffef57c028 in __GI_abort () at abort.c:89
#2  0x00007fffef571bf6 in __assert_fail_base (fmt=0x7fffef6c6018 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x11bf778 "!_views.empty ()", file=file@entry=0x11bf647 "../gtk2_ardour/editor_drag.cc", 
    line=line@entry=829, 
    function=function@entry=0x11c0940 <RegionMotionDrag::motion(_GdkEvent*, bool)::__PRETTY_FUNCTION__> "virtual void RegionMotionDrag::motion(GdkEvent*, bool)") at assert.c:92
#3  0x00007fffef571ca2 in __GI___assert_fail (assertion=0x11bf778 "!_views.empty ()", 
    file=0x11bf647 "../gtk2_ardour/editor_drag.cc", line=829, 
    function=0x11c0940 <RegionMotionDrag::motion(_GdkEvent*, bool)::__PRETTY_FUNCTION__> "virtual void RegionMotionDrag::motion(GdkEvent*, bool)") at assert.c:101
#4  0x00000000008d619d in RegionMotionDrag::motion (this=0x1b0eaab0, event=0x7fffffffd1d0, first_move=true)
    at ../gtk2_ardour/editor_drag.cc:829
#5  0x00000000008d88fe in RegionMoveDrag::motion (this=0x1b0eaab0, event=0x7fffffffd1d0, first_move=true)
    at ../gtk2_ardour/editor_drag.cc:1365
#6  0x00000000008d4887 in Drag::motion_handler (this=0x1b0eaab0, event=0x7fffffffd1d0, from_autoscroll=false)
    at ../gtk2_ardour/editor_drag.cc:480
#7  0x00000000008d3a4f in DragManager::motion_handler (this=0x4febc00, e=0x7fffffffd1d0, from_autoscroll=false)
    at ../gtk2_ardour/editor_drag.cc:197
#8  0x000000000093508f in Editor::motion_handler (this=0x57b2b30, event=0x7fffffffd1d0, from_autoscroll=false)
    at ../gtk2_ardour/editor_mouse.cc:2082
#9  0x00000000008cd8c8 in Editor::canvas_region_view_event (this=0x57b2b30, event=0x7fffffffd1d0, item=0x17e29b60, 
    rv=0x17e29840) at ../gtk2_ardour/editor_canvas_events.cc:267
#10 0x0000000000f0664b in RegionView::canvas_group_event (this=0x17e29840, event=0x7fffffffd1d0)
    at ../gtk2_ardour/region_view.cc:215
#11 0x00000000010a9928 in sigc::bound_mem_functor1<bool, TimeAxisViewItem, _GdkEvent*>::operator() (this=0x17e2aae8, 
    _A_a1=@0x7fffffffd0c0: 0x7fffffffd1d0) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1851
#12 0x00000000010a95bf in sigc::adaptor_functor<sigc::bound_mem_functor1<bool, TimeAxisViewItem, _GdkEvent*> >::operator()<_GdkEvent* const&> (this=0x17e2aae0, _A_arg1=@0x7fffffffd0c0: 0x7fffffffd1d0)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:84
#13 0x00000000010a905a in sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, TimeAxisViewItem, _GdkEvent*>, bool, _GdkEvent*>::call_it (rep=0x17e2aab0, a_1=@0x7fffffffd0c0: 0x7fffffffd1d0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:137
#14 0x00007ffff514a565 in sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >::operator() (this=0x7fffffffcfc0, _A_slot=...) at /usr/include/sigc++-2.0/sigc++/signal.h:834
#15 0x00007ffff514a18f in sigc::internal::slot_iterator_buf<sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >, bool>::operator* (this=0x7fffffffcf60) at /usr/include/sigc++-2.0/sigc++/signal.h:306
#16 0x00007ffff5149bb5 in ArdourCanvas::Item::EventAccumulator<bool>::operator()<sigc::internal::slot_iterator_buf<sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >, bool> > (this=0x7fffffffcfaf, first=..., 
    last=...) at /home/oswald/Projects/music/ardour/libs/canvas/canvas/item.h:237
#17 0x00007ffff51492cc in sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >::emit (
    impl=0x17e2aa60, _A_a1=@0x7fffffffd0c0: 0x7fffffffd1d0) at /usr/include/sigc++-2.0/sigc++/signal.h:854
#18 0x00007ffff5147ee5 in sigc::signal1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >::emit (this=0x17e29bd0, 
    _A_a1=@0x7fffffffd0c0: 0x7fffffffd1d0) at /usr/include/sigc++-2.0/sigc++/signal.h:2781
#19 0x00007ffff5146373 in sigc::signal1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >::operator() (
    this=0x17e29bd0, _A_a1=@0x7fffffffd0c0: 0x7fffffffd1d0) at /usr/include/sigc++-2.0/sigc++/signal.h:2789
---Type <return> to continue, or q <return> to quit---
#20 0x00007ffff514129b in ArdourCanvas::GtkCanvas::deliver_event (this=0x74c46f8, event=0x7fffffffd1d0)
    at ../libs/canvas/canvas.cc:751
#21 0x00007ffff5142f2a in ArdourCanvas::GtkCanvas::on_motion_notify_event (this=0x74c46f8, ev=0x2028500)
    at ../libs/canvas/canvas.cc:1139
#22 0x00007ffff1ff4af4 in Gtk::Widget_Class::motion_notify_event_callback(_GtkWidget*, _GdkEventMotion*) ()
   from /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#23 0x00007ffff32ed815 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#24 0x00007ffff3d1a3b8 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#25 0x00007ffff3d2bafb in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#26 0x00007ffff3d336f9 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#27 0x00007ffff3d33ce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#28 0x00007ffff33fd684 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#29 0x00007ffff32ebfc4 in gtk_propagate_event () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#30 0x00007ffff32ec37b in gtk_main_do_event () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#31 0x00007ffff2f663ec in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#32 0x00007ffff3845e04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff3846048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007ffff384630a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007ffff32eb447 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#36 0x00007ffff4a70a7a in Gtkmm2ext::UI::run (this=0x1cfc8e0, old_receiver=...) at ../libs/gtkmm2ext/gtk_ui.cc:284
#37 0x0000000000bc57a6 in main (argc=1, argv=0x7fffffffdb68) at ../gtk2_ardour/main.cc:426

Ardour_backtrace.txt (6,412 bytes)   

timbyr

2017-10-11 00:38

developer   ~0020049

I cannot reproduce this issue with 5.12 using the cut tool/mode and splitting regions several hundred times in as many different ways as I can.

Is there any other information or steps that might be relevant in order to reproduce this?

The backtrace you have attached indicates that a region move is occurring at the time of the crash but AFAICT you cannot move a region in cut mode?

oswaldm

2017-10-11 13:46

reporter   ~0020053

Ok, what might be relevant is that the region to be cut is in a track which is part of a group (think a guitar track and a guitar DI track which should be edited simultanously). The group was sometimes enabled, sometimes disabled when cutting, crashes occured on both occasions (with group enabled/disabled).

The split region function never showed the crash, only the cutting tool, so this was the workaround.

Also it crashed most often with the click-drag-release for finding the right place to cut (which I could imagine could be the source of the region move?)

I also observed this from Ardour 5.8 onwards as I do more often editing of the audio.

Issue History

Date Modified Username Field Change
2017-10-07 19:02 oswaldm New Issue
2017-10-07 19:02 oswaldm File Added: Ardour_backtrace.txt
2017-10-11 00:38 timbyr Note Added: 0020049
2017-10-11 00:38 timbyr Status new => feedback
2017-10-11 13:46 oswaldm Note Added: 0020053
2017-10-11 13:46 oswaldm Status feedback => new