I've upgraded from Jack 0.103 to 0.109 on a Debian system recently,
only to find my whole setup now goes haywire. Basically,
jack_[dis]connect clients fail quite often and get zombified, which
makes the jack server lockup and get killed by the watchdog (with -R).
Lockups also happen without any graph change, during normal operation.
My jack setup is now basically unusable.
I have found no reference to this problem in the few months that 0.109
was out, so I suspect I might be missing something obvious here.
After some experimentation, I have found a clean test case which seems
to exhibit the problem (if this is in fact a single problem):
****
jackd -d dummy -p 64 > jackd.log &
while true; do
for a in jack_connect jack_disconnect; do
$a system:capture_1 system:playback_1
done
done
****
This will connect and disconnect two ports in a loop, and fails after
a few dozen/hundred cycles with the message:
cannot complete execution of the processing graph (Resource temporarily unavailable)
jack_client_thread zombified - exiting from JACK
Also, after a few failures, both the client and the server get
locked-up. With a larger period (e.g. 1024), it fails less frequently
but fails nonetheless. With my real setup (ALSA driver, oss2jack and
Ardour clients, realtime), I've also seen the server segfault and print
weird messages like
client [lots of unprintable characters]: in subgraph after jack_connect, execution_order=1.
I have tried my test case on multiple CPUs (Intel and AMD, single and
dual core) and with jack 0.109.2 and latest from SVN. The result is
always the same. I also confirmed that the 0.103.0 version does not
exhibit this problem.