Open mspanc opened 8 years ago
FWIW, I see a very similar issue on occasion on ARM64 (Raspberry Pi 3, 4, and NanoPI R4S). Usually the log looks like this:
Sep 17 09:47:23 nanopi-r4s node[1995]: Process[jackd]: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Sep 17 09:47:23 nanopi-r4s node[1995]: Process[jackd]: JackEngine::XRun: client = network-sender-a2ffd535-c723-4bd5-9797-680cb661d12f was not finished, state = Triggered
Sep 17 09:47:23 nanopi-r4s node[1995]: Process[jackd]:
Sep 17 09:47:23 nanopi-r4s node[1995]: Process[jackd]: JackEngine::XRun: client = network-sender-a2ffd535-c723-4bd5-9797-680cb661d12f was not finished, state = Triggered
Sep 17 09:47:23 nanopi-r4s node[1995]: Process[jackd]: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Sep 17 09:47:23 nanopi-r4s node[1995]: Process[jackd]:
Sep 17 09:47:23 nanopi-r4s node[1995]: Process[jackd]: JACK semaphore error: semop (Invalid argument)
Sep 17 09:47:23 nanopi-r4s node[1995]: Process[jackd]: jack_shm_lock_registry fails...
And then JACK stops working.
I've been through the code quite a few times and the relevant man pages and I can't see any obvious reasons why the semop (Invalid argument)
would be triggered.
Would love to hear any ideas...
For what it's worth, I figured this one out.
On some Linux installs, /etc/systemd/logind.conf
works to remove IPC (i.e. /dev/shm semaphores) for processes after the user has "logged out". If you're running JACK as a user service, this can have the effect of ripping the semaphores out from under it e.g. after a user cron run.
Work around by adding RemoveIPC=no
in that file.
I am using JACKD with the same version as shipped with Ubuntu 16.04 (1ed50c9) with patch mentioned here: https://github.com/jackaudio/jack2/issues/212 I am setting max clients to 2000 and I have increased MAX_SHM_ID from 256 to 2048.
At some point I have noticed that my JACK clients get error 17 while connecting 2 ports.
I've found out that jackd process is running but not responding to anything.
I've checked logs and found something like
jack_shm_lock_registry fails...
Full log: jackd.log.zip
Backtrace of jackd process:
Even if it hits some limits and the error is not recoverable it would be much better if it had crashed so supervisor can restart it.