jack2 icon indicating copy to clipboard operation
jack2 copied to clipboard

Crash on client creation/tear down

Open theGreatWhiteShark opened this issue 2 years ago • 0 comments

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 --version or 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.

theGreatWhiteShark avatar Dec 14 '23 21:12 theGreatWhiteShark