I wanted to chime in on this bug, since I'm getting basically the same
issue. I'm running Debian Testing.
My situation is a little different, because I'm using an M-Audio
firewire device with Jack2 on a VIA VT6315 card, and so I need the
firewire module. I recently swapped out the firewire card but couldn't
get the audio device to work, since Jack kept segfaulting on startup.
Tonight I booted a Debian 11 live cd, and the device and Jack work
flawlessly on it. The device has trouble working with ALSA, so I use
the FFADO system instead.
This is what it looks like when running:
------------
ryan@andromeda:~$ jackd -d firewire
jackdmp 1.9.19
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2021 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
Segmentation fault (core dumped)
------------
I downloaded the Jack source code and did some GDB debugging, and found
that it's segfaulting when doing a dlopen() on the jack_firewire.so
module. Jack appears to run fine with the ALSA module instead, but not
firewire.
I attached the backtrace from GDB. I had been going over my system's
linker configuration to see if there was something wrong, and then I
found this bug report. Since glib is crashing during a string
comparison, the culprit appears to be the glibmm frontend's constructor.
I didn't set up an environment to debug glibmm yet, but let me know if
there's something you'd like me to try out. I was wanting to find out
details on that string comparison. You might be able to reproduce it if
you try to use the firewire device module like I did.
This is the output when running Valgrind on Jack:
==8689==
==8689== Process terminating with default action of signal 11 (SIGSEGV):
dumping core
==8689== Bad permissions for mapped region at address 0x6594034
==8689== at 0x4D09370: __strcmp_sse2_unaligned
(strcmp-sse2-unaligned.S:24)
==8689== by 0x6800F58: g_str_equal (in
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7000.0)
==8689== by 0x67FF9E1: g_hash_table_lookup (in
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7000.0)
==8689== by 0x6822C99: g_quark_from_static_string (in
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7000.0)
==8689== by 0x6938BAF: ??? (in
/usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1.3.0)
==8689== by 0x401010D: call_init.part.0 (dl-init.c:74)
==8689== by 0x40101EF: call_init (dl-init.c:37)
==8689== by 0x40101EF: _dl_init (dl-init.c:121)
==8689== by 0x4DAAB6C: _dl_catch_exception (dl-error-skeleton.c:182)
==8689== by 0x4014483: dl_open_worker (dl-open.c:783)
==8689== by 0x4DAAB0F: _dl_catch_exception (dl-error-skeleton.c:208)
==8689== by 0x4013D09: _dl_open (dl-open.c:864)
==8689== by 0x5025257: dlopen_doit (dlopen.c:66)
--
Ryan Thoryk
r...@thoryk.com
r...@tliquest.net
#0 __strcmp_sse2_unaligned () at
../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:31
#1 0x00007f7abc466f59 in g_str_equal () at
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007f7abc4659e2 in g_hash_table_lookup () at
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007f7abc488c9a in g_quark_from_static_string () at
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007f7abc3dbbb0 in () at /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
#5 0x00007f7abe0df10e in call_init
(l=<optimized out>, argc=argc@entry=3, argv=argv@entry=0x7ffca09e2288,
env=env@entry=0x7ffca09e22a8) at dl-init.c:74
#6 0x00007f7abe0df1f0 in call_init (env=0x7ffca09e22a8, argv=0x7ffca09e2288,
argc=3, l=<optimized out>) at dl-init.c:37
#7 _dl_init (main_map=0x55dd66345d90, argc=3, argv=0x7ffca09e2288,
env=0x7ffca09e22a8) at dl-init.c:121
#8 0x00007f7abdc19b6d in __GI__dl_catch_exception
(exception=exception@entry=0x0, operate=operate@entry=0x7f7abe0e2a00
<call_dl_init>, args=args@entry=0x7ffca09e1800)
at dl-error-skeleton.c:182
#9 0x00007f7abe0e3484 in dl_open_worker (a=a@entry=0x7ffca09e19a0) at
dl-open.c:783
#10 0x00007f7abdc19b10 in __GI__dl_catch_exception
(exception=exception@entry=0x7ffca09e1980,
operate=operate@entry=0x7f7abe0e30e0 <dl_open_worker>,
args=args@entry=0x7ffca09e19a0) at dl-error-skeleton.c:208
#11 0x00007f7abe0e2d0a in _dl_open
(file=0x7ffca09e1980 "", mode=-2147483390, caller_dlopen=0x7f7abe038bee
<JackDriverInfo::Open(jack_driver_desc_t*, Jack::JackLockedEngine*,
Jack::JackLinuxFutex*, _JSList const*)+46>, nsid=-2, argc=3,
argv=0x7ffca09e2288, env=0x7ffca09e22a8)
at dl-open.c:864
#12 0x00007f7abd8ef258 in dlopen_doit (a=a@entry=0x7ffca09e1bd0) at dlopen.c:66
#13 0x00007f7abdc19b10 in __GI__dl_catch_exception
(exception=exception@entry=0x7ffca09e1b70,
operate=operate@entry=0x7f7abd8ef200 <dlopen_doit>,
args=args@entry=0x7ffca09e1bd0) at dl-error-skeleton.c:208
#14 0x00007f7abdc19bcf in __GI__dl_catch_error
(objname=objname@entry=0x55dd662d70b0,
errstring=errstring@entry=0x55dd662d70b8,
mallocedp=mallocedp@entry=0x55dd662d70a8, operate=operate@entry=0x7f7abd8ef200
<dlopen_doit>, args=args@entry=0x7ffca09e1bd0) at dl-error-skeleton.c:227
#15 0x00007f7abd8efa65 in _dlerror_run (operate=operate@entry=0x7f7abd8ef200
<dlopen_doit>, args=args@entry=0x7ffca09e1bd0)
at dlerror.c:170
#16 0x00007f7abd8ef2e4 in __dlopen (file=<optimized out>, mode=<optimized out>)
at dlopen.c:87
#17 0x00007f7abe038bee in JackDriverInfo::Open(jack_driver_desc_t*,
Jack::JackLockedEngine*, Jack::JackLinuxFutex*, _JSList const*) () at
/usr/lib/x86_64-linux-gnu/libjackserver.so.0
#18 0x00007f7abe0352c0 in Jack::JackServer::Open(jack_driver_desc_t*, _JSList*)
()
at /usr/lib/x86_64-linux-gnu/libjackserver.so.0
#19 0x00007f7abe03d5d0 in jackctl_server_open () at
/usr/lib/x86_64-linux-gnu/libjackserver.so.0
#20 0x000055dd64dc8d1d in ()
#21 0x00007f7abdb09e4a in __libc_start_main (main=