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=

Reply via email to