jack2 icon indicating copy to clipboard operation
jack2 copied to clipboard

Deactivating freewheel mode issue when restoring the Graph after a client closed

Open farshield opened this issue 5 months ago • 0 comments

Describe the bug

If a client closes during freewheel mode, upon deactivation of the freewheel mode, the Graph is being restored with non-existing client from JackServer::SetFreewheel, which calls fGraphManager->Restore(&fConnectionState).

Since the old client is non-existing, JackGraphManager now contains an invalid refnum, as far as I understand.

Environment

  • JACK Version: Which version of jack2 are you using? (e.g. the output of jackd --version or a git commit checksum)

Latest develop branch (1.9.22)

  • Operating System: What operating system or distribution in which version are you using? (e.g. Linux, macOS, Windows)

Linux (Fedora 41)

  • Installation: How did you install jack2? (e.g. package manager, from source)

Both from source and from the OS package manager

Steps To Reproduce

# 1. Start jack server
jackd -P 70 -dalsa -dhw:USB -r48000 -p256 -n3

# 2. Start another jack client (can be anything)
jack_iodelay

# 3. Enable freewheel mode (jack_set_freewheel)

# 4. Kill the client started at step 2

# 5. Disable freewheel mode

Expected vs. actual behavior

Actual behavior upon freewheel deactivation: these logs are getting spammed all the time from jackd server:

JackFreewheelDriver::ProcessReadAsync: ResumeRefNum error
JackAudioDriver::ProcessGraphAsyncMaster: ProcessReadSlaves error
JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackLinuxFutex::Signal name = jack_sem.1000_default_jack_delay already deallocated!!

Expected behavior: No errors upon deactivation of freewheel mode.

farshield avatar Jul 17 '25 08:07 farshield