View Issue Details

IDProjectCategoryView StatusLast Update
0009217ardourbugspublic2023-02-08 00:01
Reporterslash42 Assigned Tox42  
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
PlatformUbuntuOSLinuxOS Version(any)
Summary0009217: Segfault when moving a wave region using the middle mouse button and also clicking/releasing the left mouse button while moving
DescriptionHi.

A while ago I reported a similar bug: https://tracker.ardour.org/view.php?id=8529
It is fixed in KDE neon / Ubuntu 22.04 / Ardour 6.9, thanks for that!
However, I found a variant of it which again leads to a reproducible crash.
Steps To Reproduce- open a blank session, no plugins
- add 3 or more wave tracks
- record something into the 1st track
- click and hold middle mouse button on the recorded region
- drag region to the 2nd wave track
- now click and hold also the left mouse button
- drag region further down to the 3rd wave track
- the region starts to jump back to the first and then to the 2nd track, although the mouse pointer is now inside the 3rd.
- release the left mouse button
- release the middle mouse button => crash
Additional InformationThe Ardour version I'm using is 1:6.9.0+ds0-1build1

In my recording and cutting process I mostly use the middle mouse button to drag regions around, especially if I want to keep the positions of them. But sometimes, due to sloppiness, it happens to me that my finger slips off the mouse wheel and also presses the left mouse button.
TagsNo tags attached.

Relationships

related to 0008529 closedpaul Segfault when moving a wave region using the middle mouse button and also clicking the left mouse button 

Activities

x42

2023-02-07 01:27

administrator   ~0027305

Confirmed, starting a new action while one is already in progress:

Dragging region(s) from 1 different track(s), max dist: 0
An UNDO transaction was started while a prior command was underway. Aborting command (fixed time region drag) and prior (fixed time region drag)

ardour-7.2.214: ../libs/ardour/session_state.cc:3326: void ARDOUR::Session::begin_reversible_command(GQuark): Assertion `false' failed.
--Type <RET> for more, q to quit, c to continue without paging--

Thread 1 "ArdourGUI" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
0000001  0x00007ffff37f9537 in __GI_abort () at abort.c:79
#2  0x00007ffff37f940f in __assert_fail_base
    (fmt=0x7ffff39716a8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7ffff6d3a1bf "false", file=0x7ffff6d38c30 "../libs/ardour/session_state.cc", line=3326, function=<optimized out>) at assert.c:92
#3  0x00007ffff3808662 in __GI___assert_fail
    (assertion=0x7ffff6d3a1bf "false", file=0x7ffff6d38c30 "../libs/ardour/session_state.cc", line=3326, function=0x7ffff6d3a188 "void ARDOUR::Session::begin_reversible_command(GQuark)")
    at assert.c:101
0000004  0x00007ffff7981230 in ARDOUR::Session::begin_reversible_command(unsigned int) (this=0x55555d220800, q=5476) at ../libs/ardour/session_state.cc:3326
0000005  0x00007ffff798114a in ARDOUR::Session::begin_reversible_command(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
    (this=0x55555d220800, name="fixed time region drag") at ../libs/ardour/session_state.cc:3309
#6  0x00005555575d4d0a in Editor::begin_reversible_command(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (this=
    0x55555eb631f0, name="fixed time region drag") at ../gtk2_ardour/editor.cc:3735
#7  0x0000555557688ac3 in RegionMoveDrag::motion(_GdkEvent*, bool) (this=0x5555672ba820, event=0x7fffffffc1d0, first_move=true) at ../gtk2_ardour/editor_drag.cc:1594
0000008  0x00005555576830a2 in Drag::motion_handler(_GdkEvent*, bool) (this=0x5555672ba820, event=0x7fffffffc1d0, from_autoscroll=false) at ../gtk2_ardour/editor_drag.cc:522
0000009  0x0000555557681f6c in DragManager::motion_handler(_GdkEvent*, bool) (this=0x555559b02b10, e=0x7fffffffc1d0, from_autoscroll=false) at ../gtk2_ardour/editor_drag.cc:231
0000010 0x00005555576f5e42 in Editor::motion_handler(ArdourCanvas::Item*, _GdkEvent*, bool) (this=0x55555eb631f0, event=0x7fffffffc1d0, from_autoscroll=false)
    at ../gtk2_ardour/editor_mouse.cc:2299
0000011 0x000055555767b4e4 in Editor::canvas_region_view_event(_GdkEvent*, ArdourCanvas::Item*, RegionView*) (this=0x55555eb631f0, event=0x7fffffffc1d0, item=0x555566f6c420, rv=0x555559cd2040)
    at ../gtk2_ardour/editor_canvas_events.cc:273
0000012 0x0000555557eabe92 in RegionView::canvas_group_event(_GdkEvent*) (this=0x555559cd2040, event=0x7fffffffc1d0) at ../gtk2_ardour/region_view.cc:277
0000013 0x00005555580ac4d5 in sigc::bound_mem_functor1<bool, TimeAxisViewItem, _GdkEvent*>::operator()(_GdkEvent* const&) const (this=0x555564c05e38, _A_a1=@0x7fffffffbf70: 0x7fffffffc1d0)
    at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:2066
0000014 0x00005555580abf85 in sigc::adaptor_functor<sigc::bound_mem_functor1<bool, TimeAxisViewItem, _GdkEvent*> >::operator()<_GdkEvent* const&>(_GdkEvent* const&) const
    (this=0x555564c05e30, _A_arg1=@0x7fffffffbf70: 0x7fffffffc1d0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:89
#15 0x00005555580ab620 in sigc::internal::slot_call<sigc::bound_mem_functor1<bool, TimeAxisViewItem, _GdkEvent*>, bool, _GdkEvent*>::call_it(sigc::internal::slot_rep*, _GdkEvent* const&)
    (rep=0x555564c05e00, a_#0=@0x7fffffffbf70: 0x7fffffffc1d0) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:451
0000016 0x000055555815d56f in sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >::operator()(sigc::slot<bool (_GdkEvent*), sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> const&) const (this=0x7fffffffbe48, _A_slot=...) at /usr/include/sigc++-2.0/sigc++/signal.h:860
#17 0x000055555815cb49 in sigc::internal::slot_iterator_buf<sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >, bool>::operator*() const
    (this=0x7fffffffbe00) at /usr/include/sigc++-2.0/sigc++/signal.h:319
0000018 0x000055555815be8f in ArdourCanvas::Item::EventAccumulator<bool>::operator()<sigc::internal::slot_iterator_buf<sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >, bool> >(sigc::internal::slot_iterator_buf<sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >, bool>, sigc::internal::slot_iterator_buf<sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >, bool>) (this=0x7fffffffbe6f, first=..., last=...) at ../libs/canvas/canvas/item.h:257
0000019 0x000055555815b0b8 in sigc::internal::signal_emit1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >::emit(sigc::internal::signal_impl*, _GdkEvent* const&)
    (impl=0x5555654228d0, _A_a1=@0x7fffffffbf70: 0x7fffffffc1d0) at /usr/include/sigc++-2.0/sigc++/signal.h:879
0000020 0x000055555815a101 in sigc::signal1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >::emit(_GdkEvent* const&) const
    (this=0x555566f6c490, _A_a1=@0x7fffffffbf70: 0x7fffffffc1d0) at /usr/include/sigc++-2.0/sigc++/signal.h:2955
0000021 0x0000555558159527 in sigc::signal1<bool, _GdkEvent*, ArdourCanvas::Item::EventAccumulator<bool> >::operator()(_GdkEvent* const&) const
    (this=0x555566f6c490, _A_a1=@0x7fffffffbf70: 0x7fffffffc1d0) at /usr/include/sigc++-2.0/sigc++/signal.h:2971
0000022 0x00007ffff5849c8f in ArdourCanvas::GtkCanvas::deliver_event(_GdkEvent*) (this=0x55555e49fcb8, event=0x7fffffffc1d0) at ../libs/canvas/canvas.cc:866
0000023 0x00007ffff584b915 in ArdourCanvas::GtkCanvas::on_motion_notify_event(_GdkEventMotion*) (this=0x55555e49fcb8, ev=0x55555873fad0) at ../libs/canvas/canvas.cc:1238
#24 0x00007ffff4500df4 in Gtk::Widget_Class::motion_notify_event_callback(_GtkWidget*, _GdkEventMotion*) () at /lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
0000025 0x00007ffff4b391ab in  () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000026 0x00007ffff505f0a2 in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000027 0x00007ffff5070e6e in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000028 0x00007ffff5077259 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000029 0x00007ffff5077c3f in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000030 0x00007ffff4c58fe4 in  () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000031 0x00007ffff4b377d4 in gtk_propagate_event () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000032 0x00007ffff4b37c4b in gtk_main_do_event () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0

x42

2023-02-08 00:01

administrator   ~0027315

Fixed in 7.2-239-g48efbb4cc5

Issue History

Date Modified Username Field Change
2023-01-31 19:32 slash42 New Issue
2023-02-05 00:09 x42 Relationship added related to 0008529
2023-02-07 01:27 x42 Note Added: 0027305
2023-02-07 01:28 x42 Assigned To => x42
2023-02-07 01:28 x42 Status new => confirmed
2023-02-08 00:01 x42 Status confirmed => resolved
2023-02-08 00:01 x42 Resolution open => fixed
2023-02-08 00:01 x42 Note Added: 0027315