View Issue Details

IDProjectCategoryView StatusLast Update
0010016ardourbugspublic2025-09-30 18:11
Reporterconcretny Assigned Tox42  
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionduplicate 
PlatformArchOSLinuxOS Version(any)
Product Version8.12 
Summary0010016: Pressing space bar crashes ardour
DescriptionWhen using the keyboard shortcut "space", ardour always crashes. This happens even on a new empty session without any plugins. If I change the keybinding for stop/start to e.g. ctrl+shift+space, the program works normally. Also mouse control of transport works without any issues.
Steps To Reproduce1. Launch ardour
2. Start a new session or open an existing one
3. Press spacebar
4. Crash
Additional InformationThis is what I got from gdb (I used AI to help debug this cuz I am no programmer):

(gdb) run
/usr/include/c++/15.1.1/bits/stl_list.h:1650: std::__cxx11::list<_Tp, _Allocator>::reference std::__cxx11::list<_Tp, _Allocator>::front() [with _Tp = ARDOUR::TimelineRange; _Alloc = std::allocator<ARDOUR::TimelineRange>; reference = ARDOUR::TimelineRange&]: Assertion '!this->empty()' failed.

Thread 1 "ArdourGUI" received signal SIGABRT, Aborted.

Downloading 4.48 K source file /usr/src/debug/glibc/glibc/nptl/pthread_kill.c
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;

(gdb) bt full

#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {140737319422832}}
        ret = <optimized out>
0000001 0x00007ffff5098a13 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
No locals.
#2 0x00007ffff503e410 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3 0x00007ffff502557a in __GI_abort () at abort.c:77
        act = {__sigaction_handler = {sa_handler = 0x672, sa_sigaction = 0x672}, sa_mask = {__val = {
              93825007453392, 205, 140737488343168, 26388279071744, 0, 140737488343376, 140737319538244,
              206158430232, 93825018845152, 93825018845160, 93825018845168, 0, 2, 140737488343376,
              140737319469022, 140737488343744}}, sa_flags = 0, sa_restorer = 0x7fffffffd0f0}
0000004 0x00007ffff569a41f in std::__glibcxx_assert_fail (
    file=file@entry=0x5555563d8090 "/usr/include/c++/15.1.1/bits/stl_list.h", line=line@entry=1650,
    function=function@entry=0x5555563d84d0 "std::__cxx11::list<_Tp, _Allocator>::reference std::__cxx11::list<_Tp, _Allocator>::front() [with _Tp = ARDOUR::TimelineRange; _Alloc = std::allocator<ARDOUR::TimelineRange>; reference = ARDOUR::Timel"..., condition=condition@entry=0x5555563b7470 "!this->empty()")
    at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/assert_fail.cc:41
No locals.
0000005 0x000055555583ae72 in std::__cxx11::list<ARDOUR::TimelineRange, std::allocator<ARDOUR::TimelineRange> >::front (this=<optimized out>) at /usr/include/c++/15.1.1/bits/stl_list.h:1650
        __PRETTY_FUNCTION__ = <optimized out>
#6 ARDOUR_UI::toggle_roll (this=0x555556e5c590, with_abort=<optimized out>,
    roll_out_of_bounded_mode=<optimized out>) at ../gtk2_ardour/ardour_ui.cc:1952
        range = <optimized out>
        rolling = <optimized out>
#7 ARDOUR_UI::toggle_roll (this=0x555556e5c590, with_abort=<optimized out>,
    roll_out_of_bounded_mode=<optimized out>) at ../gtk2_ardour/ardour_ui.cc:1891
        rolling = <optimized out>
        range = <optimized out>
0000008 0x00007ffff616c5d5 in sigc::slot0<void>::operator() (this=0x555557125b58)
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h:540
No locals.
0000009 Glib::SignalProxyNormal::slot0_void_callback (self=<optimized out>, data=0x555557125b50)
    at ../glibmm/glib/glibmm/signalproxy.cc:103
        slot = 0x555557125b58
0000010 0x00007ffff5edf97c in g_closure_invoke (closure=0x555557125c80, return_value=0x0, n_param_values=1,
    param_values=0x7fffffffd390, invocation_hint=0x7fffffffd2e0) at ../glib/gobject/gclosure.c:916
        marshal = 0x7ffff5ee4b70 <g_cclosure_marshal_VOID__VOID>
        marshal_data = 0x0
        in_marshal = 0
        reffed_flags = {flags = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 1,
            n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0,
            is_invalid = 0}, closure = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 1,
            n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0,
            is_invalid = 0, marshal = 0x7ffff6b70971 <Gtk::Action_Class::activate_callback(_GtkAction*)+49>,
            data = 0x0, notifiers = 0x0}, atomic_int = 131074}
        real_closure = 0x555557125c60
        __func__ = "g_closure_invoke"
0000011 0x00007ffff5eff097 in signal_emit_unlocked_R (node=node@entry=0x7fffffffd4a0, detail=detail@entry=0,
    instance=instance@entry=0x5555571259f0, emission_return=emission_return@entry=0x0,
    instance_and_params=instance_and_params@entry=0x7fffffffd390) at ../glib/gobject/gsignal.c:3976
        tmp = <optimized out>
        handler = 0x555557125c20
        accumulator = <optimized out>
        emission = {next = 0x7fffffffd9e0, instance = 0x5555571259f0, ihint = {signal_id = 213, detail = 0,
            run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN,
          chain_type = 4}
        class_closure = <optimized out>
        hlist = <optimized out>
        handler_list = 0x555557125c20
        return_accu = <optimized out>
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0,
              v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0,
              v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = <optimized out>
        max_sequential_handler_number = <optimized out>
        return_value_altered = <optimized out>
        n_params = <optimized out>
        EMIT_RESTART = <optimized out>
        __func__ = <optimized out>
0000012 0x00007ffff5f00b0f in signal_emit_valist_unlocked (instance=instance@entry=0x5555571259f0,
    signal_id=signal_id@entry=213, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffd600)
    at ../glib/gobject/gsignal.c:3535
        instance_and_params = <optimized out>
        param_values = <optimized out>
        node = <optimized out>
        i = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--c
        node_copy = <optimized out>
        __func__ = "signal_emit_valist_unlocked"
0000013 0x00007ffff5f00d89 in g_signal_emit_valist (instance=0x5555571259f0, signal_id=213, detail=0,
    var_args=var_args@entry=0x7fffffffd600) at ../glib/gobject/gsignal.c:3278
No locals.
0000014 0x00007ffff5f00e44 in g_signal_emit (instance=instance@entry=0x5555571259f0, signal_id=<optimized out>,
    detail=detail@entry=0) at ../glib/gobject/gsignal.c:3598
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd6e0,
            reg_save_area = 0x7fffffffd620}}
#15 0x00007ffff6470168 in _gtk_action_emit_activate (action=0x5555571259f0) at ../libs/tk/ytk/gtkaction.c:795
        group = 0x555557124770
0000016 0x00007ffff6e399a9 in Gtkmm2ext::Bindings::activate (this=<optimized out>, kb=...,
    op=op@entry=Gtkmm2ext::Bindings::Press) at ../libs/gtkmm2ext/bindings.cc:511
        kbm = <optimized out>
        unshifted = {_val = 32}
        k = <optimized out>
        action = {pCppObject_ = 0x555557125900}
#17 0x0000555555abd2f1 in ARDOUR_UI::key_press_focus_accelerator_handler (this=this@entry=0x555556e5c590,
    window=..., ev=ev@entry=0x5555699749a0, top_level_bindings=0x555557024230)
    at ../gtk2_ardour/ardour_ui_keys.cc:246
        k = {_val = 32}
        win = 0x555556ec8050
        focus = <optimized out>
        special_handling_of_unmodified_accelerators = <optimized out>
        mask = <optimized out>
        cutcopypaste = <optimized out>
0000018 0x0000555555abd5ff in ARDOUR_UI::key_event_handler (this=0x555556e5c590, ev=0x5555699749a0,
    event_window=0x555556e5c8c8) at ../gtk2_ardour/ardour_ui_keys.cc:103
        bindings = <optimized out>
        window = <optimized out>
0000019 0x00007ffff6c3124b in (anonymous namespace)::Widget_signal_key_press_event_callback(_GtkWidget*, _GdkEventKey*, void*) [clone .lto_priv.0] () at ../libs/tk/ytkmm/widget.cc:1481
        Gtk::Widget::widget_class_ = {<Glib::Class> = {gtype_ = 0, class_init_func_ = 0x0}, <No data fields>}
0000020 0x00007ffff657edfc in _gtk_marshal_BOOLEAN__BOXED (closure=0x555558f92fd0, return_value=0x7fffffffda10,
    n_param_values=<optimized out>, param_values=0x7fffffffdaa0, invocation_hint=<optimized out>,
    marshal_data=<optimized out>) at ../libs/tk/ytk/gtkmarshalers.c:84
        cc = 0x555558f92fd0
        data1 = <optimized out>
        data2 = <optimized out>
        callback = <optimized out>
        v_return = <optimized out>
        __func__ = "_gtk_marshal_BOOLEAN__BOXED"
0000021 0x00007ffff5edf97c in g_closure_invoke (closure=0x555558f92fd0, return_value=0x7fffffffda10,
    n_param_values=2, param_values=0x7fffffffdaa0, invocation_hint=0x7fffffffd9f0)
    at ../glib/gobject/gclosure.c:916
        marshal = 0x7ffff657eda0 <_gtk_marshal_BOOLEAN__BOXED>
        marshal_data = 0x0
        in_marshal = 0
        reffed_flags = {flags = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 1,
            n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0,
            is_invalid = 0}, closure = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 1,
            n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 0,
            is_invalid = 0, marshal = 0x7ffff5ee4b00 <g_type_class_meta_marshal>, data = 0x7fffffffda10,
            notifiers = 0x0}, atomic_int = 131074}
        real_closure = 0x555558f92fb0
        __func__ = "g_closure_invoke"
0000022 0x00007ffff5efeaab in signal_emit_unlocked_R (node=node@entry=0x7fffffffdbd0, detail=detail@entry=0,
    instance=instance@entry=0x555556ec8050, emission_return=emission_return@entry=0x7fffffffdc50,
    instance_and_params=instance_and_params@entry=0x7fffffffdaa0) at ../glib/gobject/gsignal.c:3903
        tmp = <optimized out>
        handler = 0x555558f922a0
        accumulator = <optimized out>
        emission = {next = 0x0, instance = 0x555556ec8050, ihint = {signal_id = 42, detail = 0,
            run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4}
        class_closure = <optimized out>
        hlist = <optimized out>
        handler_list = 0x555558f921b0
        return_accu = <optimized out>
        accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0,
              v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0,
              v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = <optimized out>
        max_sequential_handler_number = <optimized out>
        return_value_altered = <optimized out>
        n_params = <optimized out>
        EMIT_RESTART = <optimized out>
        __func__ = <optimized out>
0000023 0x00007ffff5f002db in signal_emit_valist_unlocked (instance=instance@entry=0x555556ec8050,
    signal_id=signal_id@entry=42, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffdd30)
    at ../glib/gobject/gsignal.c:3548
        return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0,
              v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0,
              v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        error = 0x0
        rtype = 20
        static_scope = 0
        instance_and_params = <optimized out>
        param_values = <optimized out>
        node = <optimized out>
        i = <optimized out>
        node_copy = <optimized out>
        __func__ = "signal_emit_valist_unlocked"
#24 0x00007ffff5f00d89 in g_signal_emit_valist (instance=0x555556ec8050, signal_id=42, detail=0,
    var_args=var_args@entry=0x7fffffffdd30) at ../glib/gobject/gsignal.c:3278
No locals.
0000025 0x00007ffff5f00e44 in g_signal_emit (instance=instance@entry=0x555556ec8050, signal_id=<optimized out>,
    detail=detail@entry=0) at ../glib/gobject/gsignal.c:3598
        var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffde10,
            reg_save_area = 0x7fffffffdd50}}
0000026 0x00007ffff672f65f in gtk_widget_event_internal (widget=0x555556ec8050, event=0x5555699749a0)
    at ../libs/tk/ytk/gtkwidget.c:5010
        signal_num = <optimized out>
        return_val = 0
0000027 0x00007ffff6583c44 in IA__gtk_propagate_event (widget=0x555556ec8050, event=0x5555699749a0)
    at ../libs/tk/ytk/gtkmain.c:2420
        window = 0x555556ec8050
        handled_event = <optimized out>
        __func__ = <optimized out>
        _g_boolean_var_19 = <optimized out>
        __inst = <optimized out>
        __t = <optimized out>
        __r = <optimized out>
        _g_boolean_var_20 = <optimized out>
0000028 IA__gtk_propagate_event (widget=widget@entry=0x555556ec8050, event=event@entry=0x5555699749a0)
    at ../libs/tk/ytk/gtkmain.c:2383
        handled_event = <optimized out>
        __func__ = "IA__gtk_propagate_event"
        window = <optimized out>
        __inst = <optimized out>
        __t = <optimized out>
        __r = <optimized out>
        __inst = <optimized out>
        __t = <optimized out>
        __r = <optimized out>
        tmp = <optimized out>
0000029 0x00007ffff65884cb in IA__gtk_main_do_event (event=0x5555699749a0) at ../libs/tk/ytk/gtkmain.c:1641
        event_widget = <optimized out>
        grab_widget = 0x555556ec8050
        window_group = 0x555556b4c910
        rewritten_event = <optimized out>
        tmp_list = <optimized out>
        __func__ = <optimized out>
0000030 0x00007ffff69a18d2 in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>,
    user_data=<optimized out>) at ../libs/tk/ydk/x11/gdkevents-x11.c:2425
        display = <optimized out>
        event = 0x5555699749a0
0000031 0x00007ffff6229f4d in g_main_dispatch (context=0x55555683d8c0) at ../glib/glib/gmain.c:3565
        user_data = 0x0
        callback = 0x0
        gaig_temp = <optimized out>
        gaig_temp = <optimized out>
        cb_data = 0x0
        need_destroy = <optimized out>
        dispatch = 0x7ffff69a1880 <gdk_event_dispatch>
        prev_source = 0x0
        was_in_call = 0
        cb_funcs = 0x0
        begin_time_nsec = 6155239964094
        source = 0x5555568e4220
        current = 0x555556b4a8d0
        i = 0
        __func__ = "g_main_dispatch"
0000032 0x00007ffff622b617 in g_main_context_dispatch_unlocked (context=0x55555683d8c0)
    at ../glib/glib/gmain.c:4425
No locals.
0000033 g_main_context_iterate_unlocked (context=0x55555683d8c0, block=block@entry=1, dispatch=dispatch@entry=1,
    self=<optimized out>) at ../glib/glib/gmain.c:4490
        max_priority = 2147483647
        timeout_usec = 9468
        some_ready = 1
        nfds = 3
        allocated_nfds = <optimized out>
        fds = 0x555556bb74e0
        begin_time_nsec = <optimized out>
0000034 0x00007ffff622b9d7 in g_main_loop_run (loop=0x555556d52b40) at ../glib/glib/gmain.c:4695
        self = <optimized out>
        __func__ = "g_main_loop_run"
0000035 0x00007ffff65878c3 in IA__gtk_main () at ../libs/tk/ytk/gtkmain.c:1213
        tmp_list = 0x0
        functions = 0x0
        init = <optimized out>
        loop = 0x555556d52b40
0000036 0x00007ffff6e51ffc in Gtkmm2ext::UI::run (this=this@entry=0x555556e5c590, old_receiver=...)
    at ../libs/gtkmm2ext/gtk_ui.cc:305
No locals.
0000037 0x00005555559eb829 in main (argc=<optimized out>, argv=<optimized out>) at ../gtk2_ardour/main.cc:471
No locals.
Tagsspacebar

Relationships

duplicate of 0009973 resolvedx42 Ardour crashes immediately upon spacebar 

Activities

moll

2025-09-28 19:16

reporter   ~0029458

Just to share another data point, I'm seeing the exact same crash on Arch Linux with Ardour 8.12-3 from the Arch repository (everything else updated as of now, Sep 28, 2025 at 19:15 UTC). Playback, when initiated through the play button, works fine, and interestingly, so does pausing with Space, but hitting Space to (re)start playback immediately crashes.

colinf

2025-09-28 21:45

updater   ~0029462

Is this a duplicate of 0009949 & 0009973?

moll

2025-09-29 04:38

reporter   ~0029465

Ah, thanks, colinf. Indeed, x42's suggestion (https://tracker.ardour.org/view.php?id=9973#c29382) to disable "Follow range" (it's in the Transport menu) seems to work-around this.

x42

2025-09-30 18:11

administrator   ~0029466

Fixed in Ardour/git 9.0-pre0-1230-g49ff88fd75

Issue History

Date Modified Username Field Change
2025-09-28 17:35 concretny New Issue
2025-09-28 17:35 concretny Tag Attached: spacebar
2025-09-28 19:16 moll Note Added: 0029458
2025-09-28 21:45 colinf Note Added: 0029462
2025-09-29 04:38 moll Note Added: 0029465
2025-09-29 08:06 colinf Relationship added duplicate of 0009973
2025-09-30 18:11 x42 Assigned To => x42
2025-09-30 18:11 x42 Status new => resolved
2025-09-30 18:11 x42 Resolution open => duplicate
2025-09-30 18:11 x42 Note Added: 0029466