Bug#994969: jackd2: segfaults after today's upgrade of other Debian testing packages

Ryan Thoryk ryan at thoryk.com
Fri Oct 1 05:36:43 BST 2021


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 at 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
ryan at thoryk.com
ryan at tliquest.net
-------------- next part --------------
#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 at entry=3, argv=argv at entry=0x7ffca09e2288, env=env at 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 at entry=0x0, operate=operate at entry=0x7f7abe0e2a00 <call_dl_init>, args=args at entry=0x7ffca09e1800)
    at dl-error-skeleton.c:182
#9  0x00007f7abe0e3484 in dl_open_worker (a=a at entry=0x7ffca09e19a0) at dl-open.c:783
#10 0x00007f7abdc19b10 in __GI__dl_catch_exception
    (exception=exception at entry=0x7ffca09e1980, operate=operate at entry=0x7f7abe0e30e0 <dl_open_worker>, args=args at 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 at entry=0x7ffca09e1bd0) at dlopen.c:66
#13 0x00007f7abdc19b10 in __GI__dl_catch_exception
    (exception=exception at entry=0x7ffca09e1b70, operate=operate at entry=0x7f7abd8ef200 <dlopen_doit>, args=args at entry=0x7ffca09e1bd0) at dl-error-skeleton.c:208
#14 0x00007f7abdc19bcf in __GI__dl_catch_error
    (objname=objname at entry=0x55dd662d70b0, errstring=errstring at entry=0x55dd662d70b8, mallocedp=mallocedp at entry=0x55dd662d70a8, operate=operate at entry=0x7f7abd8ef200 <dlopen_doit>, args=args at entry=0x7ffca09e1bd0) at dl-error-skeleton.c:227
#15 0x00007f7abd8efa65 in _dlerror_run (operate=operate at entry=0x7f7abd8ef200 <dlopen_doit>, args=args at 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=



More information about the pkg-gnome-maintainers mailing list