-- snip --
This sounds like a known (or at least reported) JACK2 shutdown/disconnection problem that gets worse with a high number of ports/connections. Qtractor (and other clients) get stuck during cleanup when exiting because they can't properly unregister their JACK ports.
Why this happens
Qtractor registers a lot of JACK ports (one pair per track/bus/channel, plus MIDI, etc.) in complex sessions.
On exit, it (and the JACK server) tries to disconnect and unregister everything.
JACK2 can deadlock or hang in this phase under heavy load (many ports + many external connections). Other clients appear frozen because the JACK server itself is blocked in the client shutdown path.
This is more common with jack2 than jack1, and especially when there are complex graphs involving plugins, sends/returns, or many external apps.
This is a classic "JACK graph teardown" fragility that shows up in bigger sessions. Reducing port count or using jack1 often resolves it immediately.
-- snip --
Maybe it can be mitigated if Qtractor disconnects all jack-connections serially before disconnecting from jack. This might make it easier for jackd to cleanup.
I asked Grok and it says:
-- snip --
This sounds like a known (or at least reported) JACK2 shutdown/disconnection problem that gets worse with a high number of ports/connections. Qtractor (and other clients) get stuck during cleanup when exiting because they can't properly unregister their JACK ports.
Why this happens
Qtractor registers a lot of JACK ports (one pair per track/bus/channel, plus MIDI, etc.) in complex sessions.
On exit, it (and the JACK server) tries to disconnect and unregister everything.
JACK2 can deadlock or hang in this phase under heavy load (many ports + many external connections). Other clients appear frozen because the JACK server itself is blocked in the client shutdown path.
This is more common with jack2 than jack1, and especially when there are complex graphs involving plugins, sends/returns, or many external apps.
This is a classic "JACK graph teardown" fragility that shows up in bigger sessions. Reducing port count or using jack1 often resolves it immediately.
-- snip --
Maybe it can be mitigated if Qtractor disconnects all jack-connections serially before disconnecting from jack. This might make it easier for jackd to cleanup.