Revisiting JACK client dependencies and connections
nettings opened this issue · 1 comments
nettings commented
Current situation:
- If mn_jackd is restarted, all active JACK clients restart and reconnect.
- However, if mn_jackd is stopped and later restarted, the active JACK clients do not follow. It would be nice if there was a way to restart them all in one go.
- If any JACK client is restarted, all its connections are restored.
- However, a missing JACK client (usually mn_listen because of an icecast2 failure, or zita-n2j) can cause other active JACK clients to time out during connection attemptsm, because their ExecStartPost job does not terminate (waiting for a missing client to connect to, see #69)
Solution:
- mn_connect no longer waits for upstream (why did I ever think that's a good idea?)
- mn_connect tries to make all connections, fail immediately and move on
- mn_connect retries for a specified timeout and then stops so that systemd units no longer time out (units includde the connection with ExecStartPost=-mn_connect %n --timeout 30 --interval 5)
- mn_connect sleeps in between for a specified interval (There might be a race condition in client/port creation and/or port enumeration via jack_lsp, so we go easy)