brummer10 / guitarix

guitarix virtual versatile amplification for Jack/Linux
272 stars 32 forks source link

Segmentation fault on startup #169

Closed NikolasK-source closed 1 month ago

NikolasK-source commented 2 months ago

when i start guitarix on arch Linux (kernel 6.10.5-arch1-1) it crashes with a Segmentation fault.

guitarix version: 0.46.0 pipewire version: 1.2.2

gdb output:

$ gdb --args guitarix --log-terminal
GNU gdb (GDB) 15.1
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from guitarix...

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.archlinux.org>
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
Reading symbols from /home/user/.cache/debuginfod_client/23dce75797337ba52994abf6f5b25bb0ddc7717a/debuginfo...
(gdb) run
Starting program: /usr/bin/guitarix --log-terminal
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff18006c0 (LWP 7411)]
[New Thread 0x7ffff0e006c0 (LWP 7412)]
[New Thread 0x7ffff04006c0 (LWP 7413)]
[New Thread 0x7fffefa006c0 (LWP 7414)]
[New Thread 0x7fffeec006c0 (LWP 7415)]
[New Thread 0x7fffee2006c0 (LWP 7416)]
Gdk-Message: 21:55:17.862: Window 0x5555561ac1e0 is a temporary window without parent, application will not be able to position it on screen.
[New Thread 0x7fffed8006c0 (LWP 7417)]
[New Thread 0x7fffece006c0 (LWP 7418)]
[New Thread 0x7fffdae006c0 (LWP 7419)]

(guitarix:7408): Gtk-CRITICAL **: 21:55:18.049: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
W [21:55:18]  load state  ***  error loading state from file /home/user/.config/guitarix/gx_head_rc
[New Thread 0x7fffd96006c0 (LWP 7420)]
[Thread 0x7fffd96006c0 (LWP 7420) exited]
[New Thread 0x7fffd96006c0 (LWP 7421)]
[New Thread 0x7fffd8c006c0 (LWP 7422)]
[New Thread 0x7fffcfe006c0 (LWP 7423)]
[Thread 0x7fffcfe006c0 (LWP 7423) exited]
[New Thread 0x7fffcfe006c0 (LWP 7424)]
[New Thread 0x7fffcf4006c0 (LWP 7425)]
I [21:55:18]  Jack init  ***  The jack sample rate is 192000/sec
I [21:55:18]  Jack init  ***  The jack buffer size is 256/frames ... 
[New Thread 0x7fffcea006c0 (LWP 7426)]
[New Thread 0x7fffce0006c0 (LWP 7427)]
[New Thread 0x7fffcd6006c0 (LWP 7428)]

Thread 18 "data-loop.0" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffce0006c0 (LWP 7427)]
__memset_avx2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:236
236             VMOVU   %VMM(0), (%rdi)
(gdb) bt full
#0  __memset_avx2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:236
No locals.
#1  0x0000555555939f9c in gx_jack::GxJack::gx_jack_process (nframes=256, arg=0x7fffffffb2e0) at ../src/gx_head/engine/gx_jack.cpp:786
        obuf = 0x0
        self = @0x7fffffffb2e0: {<sigc::trackable> = {callback_list_ = 0x5555564b83d0}, engine = @0x7ffffff8bbf8, jack_is_down = false, jack_is_exit = false, bypass_insert = false, mmessage = {engine = @0x7ffffff8bbf8, 
            static max_midi_cc_cnt = 25, send_cc = {std::atomic<bool> = { false } <repeats 25 times>}, cc_num = {0, -19648, 32767, 1445239056, 21845, 1443119696, 21845, 9320, 0, -19376, 32767, -167810368, 32767, 528, 0, 1446033232, 
              21845, -19552, 32767, 128, 0, 2, 0, 128, 0}, pg_num = {2, 0, -16944, 32767, -19536, 32767, -137649285, 32767, 2, 0, 1445405584, 21845, -19504, 32767, -137494677, 32767, 1444178912, 21845, 1445405584, 21845, -19472, 
              32767, -137494558, 32767, -136860552}, bg_num = {32767, -18992, 32767, -19312, 32767, -137784275, 32767, -19296, 32767, 1857700864, 1, 1436647877, 21845, -32944, -1, 0, 0, 1445405568, 21845, -19344, 32767, -169130546, 
              32767, 0, 0}, me_num = {1, 0, 0, 0, 1445405584, 21845, 1445309360, 21845, -16944, 32767, -19312, 32767, -137513976, 32767, -18160, 32767, -18992, 32767, -19088, 32767, -137782643, 32767, 24, 48, -19072}}, 
          connection_queue = {ring = 0x5555564b8180, send_changes = false, overflow = 0, new_data = {signal_ = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, 
                    impl_ = 0x5555564b8510}, <No data fields>}, <No data fields>}, notifier_ = 0x5555561e7d00}, portchange = {signal_ = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {
                      callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, notifier_ = 0x5555561e7d00}}, 
          connection_changed = {<sigc::signal3<void, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, buffersize_change = {signal_ = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {
                    callback_list_ = 0x0}, impl_ = 0x555556b70650}, <No data fields>}, <No data fields>}, notifier_ = 0x5555561e7d00}, client_change_rt = {
            signal_ = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x5555564b8750}, <No data fields>}, <No data fields>}, notifier_ = 0x5555561e7d00}, 
          client_change = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x5555564b8400}, <No data fields>}, <No data fields>}, client_instance = "gx_head", 
          jack_sr = 192000, jack_bs = 256, insert_buffer = 0x555556011a00, xrun = {signal_ = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, 
                  impl_ = 0x5555564b8970}, <No data fields>}, <No data fields>}, notifier_ = 0x5555561e7d00}, last_xrun = 0, xrun_msg_blocked = false, ports = {input = {port = 0x7fffbc014ac0, conn = empty std::__cxx11::list}, 
            midi_input = {port = 0x555556ccc360, conn = empty std::__cxx11::list}, insert_out = {port = 0x555556ccd5b0, conn = empty std::__cxx11::list}, midi_output = {port = 0x555556ccded8, conn = empty std::__cxx11::list}, 
            insert_in = {port = 0x555556ccfa50, conn = empty std::__cxx11::list}, output1 = {port = 0x555556ce3f90, conn = empty std::__cxx11::list}, output2 = {port = 0x555556ce51e0, conn = empty std::__cxx11::list}}, 
          client = 0x555556c6e990, client_insert = 0x555556c9a280, current = {unique_1 = 3, usecs = 879595437, frame_rate = 192000, frame = 0, valid = 0, bar = 0, beat = 0, tick = 0, bar_start_tick = 0, beats_per_bar = 0, 
            beat_type = 0, ticks_per_beat = 0, beats_per_minute = 0, frame_time = 0, next_time = 0, bbt_offset = 0, audio_frames_per_video_frame = 0, video_offset = 0, tick_double = 0, padding = {0, 0, 0, 0, 0}, unique_2 = 3}, 
          transport_state = JackTransportStopped, old_transport_state = 32767, client_name = "gx_head_amp", client_insert_name = "gx_head_fx", session = {
            signal_ = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, notifier_ = 0x5555561e7d00}, session_ins = {
            signal_ = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, notifier_ = 0x5555561e7d00}, shutdown = {
            signal_ = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x555556b704e0}, <No data fields>}, <No data fields>}, notifier_ = 0x5555561e7d00}, connection = {
            signal_ = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, notifier_ = 0x5555561e7d00}, single_client = false}
        buf = <optimized out>
#2  0x00007ffff7e40c89 in on_rtsocket_condition (data=0x555556c6e990, fd=<optimized out>, mask=<optimized out>) at ../pipewire/pipewire-jack/src/pipewire-jack.c:2036
        res = 0
        buffer_frames = 256
        status = 0
        c = 0x555556c6e990
        __func__ = "on_rtsocket_condition"
#3  0x00007ffff7fa6fb5 in loop_iterate_cancel (object=<optimized out>, timeout=<optimized out>) at ../pipewire/spa/plugins/support/loop.c:557
        s = <optimized out>
        __clframe = {__cancel_routine = <optimized out>, __cancel_arg = <synthetic pointer>, __do_it = 1, __cancel_type = <optimized out>}
        impl = <optimized out>
        ep = {{events = 1, data = 0x7fffc4022ac0}, {events = 0, data = 0x0}, {events = 0, data = 0xd87d32256eba4400}, {events = 0, data = 0x7fffcdff7a40}, {events = 3447721984, data = 0x7fffcdff7bf0}, {events = 0, 
            data = 0x7ffffff8a700}, {events = 3456072448, data = 0x7ffff5e9773f <__vsnprintf_internal+143>}, {events = 3456072688, data = 0x7fffcdff7c0b}, {events = 3456072723, data = 0x0}, {events = 2, data = 0x0}, {events = 0, 
            data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0xd87d32256eba4400}, {events = 0, 
            data = 0x800000}, {events = 3456072672, data = 0x7ffff5e6de26 <__GI___snprintf+150>}, {events = 32, data = 0x7fffcdff7bf0}, {events = 3456072496, data = 0xd87d32256eba4400}, {events = 0, data = 0x0}, {events = 0, 
            data = 0x1d03}, {events = 3456108224, data = 0x7ffffff8a807}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, data = 0x0}, {events = 0, 
            data = 0xd87d32256eba4400}, {events = 0, data = 0x800000}}
        e = <optimized out>
        i = 0
        nfds = 1
        cdata = <optimized out>
        __func__ = "loop_iterate_cancel"
#4  0x00007ffff5c46633 in do_loop (user_data=0x555556c7b640) at ../pipewire/src/pipewire/data-loop.c:67
        __clframe = <optimized out>
        this = 0x555556c7b640
        res = <optimized out>
        cb = <optimized out>
        m = <optimized out>
        data = 0x555556c7b7d8
        iterate = 0x7ffff7fa6de0 <loop_iterate_cancel>
        __func__ = "do_loop"
#5  0x00007ffff5ea339d in start_thread (arg=<optimized out>) at pthread_create.c:447
        ret = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736649496256, 2071738379108366040, 140736649496256, -32944, 0, 140737487873792, 2071738379120948952, 2071720969587930840}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 
              0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#6  0x00007ffff5f2849c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
No locals.
NikolasK-source commented 2 months ago

i also removed the ~/.config/guitarix directory and it still crashes.

brummer10 commented 2 months ago

Are you a member of the realtime group? groups

If I remember right, this issue is fixed in the latest revision in the repository.

NikolasK-source commented 1 month ago

the Segmentation fault does no occur when i compile the latest revision.