[LAD] Possible jack_port_disconnect() problem.

Ethan Funk ethan at redmountainradio.com
Tue Nov 26 17:45:34 CET 2019


After days of testing, I got a crash (of sorts) out of my
program.  More of a hang than a crash.  So I attached gdb to the
process and looked around.  My main thread appears to be hung deep
inside a jack call, via jack_port_disconnect().  This is a point in my
code where it cleans up after an jack-attached media player that is
done playing.  The player process terminates when it's jack connections
are disconnected.  I re-started the code execution and then stopped it
again to find that the main thread was still waiting at the same
libc_read() spot.  After taking a look at the jack source code, I
didn't find that jack_port_disconnect() would result in a read any
place down the jack call chain.  To be fair to jack, I am still mostly
unfamiliar with the library structure, so I could be missing
something.  Any insight as to what I might be doing wrong?   The port I
am passing to jack_port_disconnect() appears to be valid, unless my
code is overwriting memory.  Backtrace of the main thread is below.

Thanks all.
Ethan...

(gdb) bt full
#0  __libc_read (nbytes=4, buf=0x7fffad4ed248, fd=5) at
../sysdeps/unix/sysv/linux/read.c:26
        resultvar = 18446744073709551104
        sc_cancel_oldtype = 0
        __arg3 = <optimized out>
        _a2 = <optimized out>
        sc_ret = <optimized out>
        __value = <optimized out>
        __arg1 = <optimized out>
        _a3 = <optimized out>
        resultvar = <optimized out>
        resultvar = <optimized out>
        __arg2 = <optimized out>
        _a1 = <optimized out>
#1  __libc_read (fd=5, buf=0x7fffad4ed248, nbytes=4) at
../sysdeps/unix/sysv/linux/read.c:24
No locals.
#2  0x00007fab6fe13ead in ?? () from /lib/x86_64-linux-gnu/libjack.so.0
No symbol table info available.
#3  0x00007fab6fe02e2a in ?? () from /lib/x86_64-linux-gnu/libjack.so.0
No symbol table info available.
#4  0x00007fab6fe03768 in ?? () from /lib/x86_64-linux-gnu/libjack.so.0
No symbol table info available.
#5  0x00007fab6fdf8598 in ?? () from /lib/x86_64-linux-gnu/libjack.so.0
No symbol table info available.
#6  0x0000564ac911610a in releaseQueueRecord (root=0x564ac9134260
<queueList>, rec=0x7fab3004c910, force=0 '\000') at data.c:473
[NOTE: this line is: 	jack_port_disconnect(mixEngine->client, *port);
	]
        c = 1
        cmax = 2
        port = 0x564acaf81278
        prev = 0x564ac9134260 <queueList>
        current = 0x7fab3004c910
        instance = 0x564acaf80be0
        logID = 9126049
        tmp = <optimized out>
#7  0x0000564ac91057c5 in NextListItem (lastStat=2,
curQueRec=0x564ac9134260 <queueList>, firstp=0x7fffad4ed418,
sbtime=0x7fffad4ed41c, remtime=0, isPlaying=0x7fffad4ed416 "") at
automate.c:811

.... Blah, blah, blah....
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.linuxaudio.org/archives/linux-audio-dev/attachments/20191126/850fe5ed/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <https://lists.linuxaudio.org/archives/linux-audio-dev/attachments/20191126/850fe5ed/attachment.sig>


More information about the Linux-audio-dev mailing list