<html dir="ltr"><head></head><body style="text-align:left; direction:ltr;"><div>Related question then: Any idea what my application could be doing wrong to cause jack to not get back with a response?  It had been waiting for about an hour, while I was off doing paying work, and my applications process function was still being called by jack when I finally noticed it. My best plan for now is to test again, and wait for it to happen, then see if I can get another jack program to connect/disconnect after my program hangs, and check the jack logs right away.  The jack log file from this test is full of underruns from my debugging, so that is mostly useless.  Any other debuging approach I should be taking?  </div><div><br></div><div>Thanks,</div><div>Ethan...</div><div><br></div><div>On Tue, 2019-11-26 at 10:10 -0700, Paul Davis wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>jack clients and the server on linux communicate via reading and writing</pre><pre>through a FIFO. there's nothing unusual about read(2) showing up here - the</pre><pre>client has asked the server for a port disconnect and is waiting for a</pre><pre>response.</pre><pre><br></pre><pre>On Tue, Nov 26, 2019 at 9:45 AM Ethan Funk <</pre><a href="mailto:ethan@redmountainradio.com"><pre>ethan@redmountainradio.com</pre></a><pre>></pre><pre>wrote:</pre><pre><br></pre><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>After days of testing, I got a crash (of sorts) out of my program. More of</pre><pre>a hang than a crash. So I attached gdb to the process and looked around. My</pre><pre>main thread appears to be hung deep inside a jack call, via</pre><pre>jack_port_disconnect(). This is a point in my code where it cleans up after</pre><pre>an jack-attached media player that is done playing. The player process</pre><pre>terminates when it's jack connections are disconnected. I re-started the</pre><pre>code execution and then stopped it again to find that the main thread was</pre><pre>still waiting at the same libc_read() spot. After taking a look at the jack</pre><pre>source code, I didn't find that jack_port_disconnect() would result in a</pre><pre>read any place down the jack call chain. To be fair to jack, I am still</pre><pre>mostly unfamiliar with the library structure, so I could be missing</pre><pre>something. Any insight as to what I might be doing wrong? The port I am</pre><pre>passing to jack_port_disconnect() appears to be valid, unless my code is</pre><pre>overwriting memory. Backtrace of the main thread is below.</pre><pre><br></pre><pre>Thanks all.</pre><pre>Ethan...</pre></blockquote></blockquote><pre><br></pre></body></html>