jack2
jack2 copied to clipboard
Crash on client creation/tear down
Describe the bug
While debugging a crash in another software (Hydrogen) I happen to create and destroy its JACK driver tens and hundreds of times in a very short amount of time. While doing so I frequently (like, once out of hundred) encountered crashes which seem to be caused by JACK itself.
The most frequent ones was this:
Thread 174 "tests" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffd5cff700 (LWP 4136)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff6717537 in __GI_abort () at abort.c:79
#2 0x00007ffff6ac37ec in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff6ace966 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff6ace9d1 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff6ace3cc in __gxx_personality_v0 () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff68d98a4 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#7 0x00007ffff68d9f4e in _Unwind_ForcedUnwind () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#8 0x00007ffff79f5c30 in __GI___pthread_unwind (buf=<optimized out>) at unwind.c:121
#9 0x00007ffff79ea729 in __do_cancel () at ./pthreadP.h:310
#10 sigcancel_handler (sig=32, si=0x7fffd5cfe430, ctx=<optimized out>) at nptl-init.c:177
#11 sigcancel_handler (sig=<optimized out>, si=0x7fffd5cfe430, ctx=<optimized out>) at nptl-init.c:142
#12 <signal handler called>
#13 __memset_avx2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:170
#14 0x00007ffff650ff53 in Jack::JackClientNotification::JackClientNotification() () from /usr/local/lib/libjack.so.0
#15 0x00007ffff650fcae in Jack::JackSocketClientChannel::Execute() () from /usr/local/lib/libjack.so.0
#16 0x00007ffff6508484 in Jack::JackPosixThread::ThreadHandler(void*) () from /usr/local/lib/libjack.so.0
#17 0x00007ffff79ebea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#18 0x00007ffff67f0a2f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
And occasionally I had this one:
Thread 402 "tests" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffd5cff700 (LWP 8790)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff6717537 in __GI_abort () at abort.c:79
#2 0x00007ffff6ac37ec in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff6ace966 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff6ace9d1 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff6ace3cc in __gxx_personality_v0 () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff68d98a4 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#7 0x00007ffff68d9f4e in _Unwind_ForcedUnwind () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#8 0x00007ffff79f5c30 in __GI___pthread_unwind (buf=<optimized out>) at unwind.c:121
#9 0x00007ffff79ea729 in __do_cancel () at ./pthreadP.h:310
#10 sigcancel_handler (sig=32, si=0x7fffd5cfe470, ctx=<optimized out>) at nptl-init.c:177
#11 sigcancel_handler (sig=<optimized out>, si=0x7fffd5cfe470, ctx=<optimized out>) at nptl-init.c:142
#12 <signal handler called>
#13 0x00007ffff64f7ccc in Jack::JackResult::~JackResult() () from /usr/local/lib/libjack.so.0
#14 0x00007ffff650fe32 in Jack::JackSocketClientChannel::Execute() () from /usr/local/lib/libjack.so.0
#15 0x00007ffff6508484 in Jack::JackPosixThread::ThreadHandler(void*) () from /usr/local/lib/libjack.so.0
#16 0x00007ffff79ebea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#17 0x00007ffff67f0a2f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Environment
- JACK Version: Which version of jack2 are you using? (e.g. the output of
jackd --versionor a git commit checksum)
v1.9.21
- Operating System: What operating system or distribution in which version are you using? (e.g. Linux, macOS, Windows)
Linux Devuan ASCII
- Installation: How did you install jack2? (e.g. package manager, from source)
from source
Steps To Reproduce
Well, nothing minimal. But if you like I can prepare you a branch of Hydrogen which should encounter a crash within its unit tests.