mod-audio / mod-host

LV2 host for Jack controllable via socket or command line
GNU General Public License v3.0
107 stars 55 forks source link

mod-monitor sometimes stuck in an XRUN loop after startup #71

Open nettings opened 10 months ago

nettings commented 10 months ago

I'm using mod-host headless on a Raspberry Pi. It is started by systemd, and connections between it and other JACK clients are done with a framework of scripts. During startup, there is a slight chance (maybe one in 20 or so) that jackd will produce xruns as follows:

JackAudioDriver::ProcessGraphAsyncMaster: Process error
JackEngine::XRun: client = mod-monitor was not finished, state = Triggered
...

These go on forever, hundreds per second. The audio performance of the JACK graph is not affected, though - no audible clicks, just a slighly higher CPU load which may be entirely due to the many log messages.

I have never seen this occur during normal operation, it either happens immediately after initially starting the JACK graph or not at all. I have seen it on Hifiberry soundcards as well as using the built-in PWM sound.

I started seeing this error since mod-monitor is activated by default. What could be the cause? My particular problem would be solved with command-line option to disable the mod-monitor client...

falkTX commented 10 months ago

I have not seen this myself, and the code for monitor process is simple enough https://github.com/moddevices/mod-host/blob/master/src/monitor/monitor-client.c#L144 so not sure how this can happen.

by default volume gain and compressor are not enabled, so the code just does a memcpy or memset depending on the port connections.

would be nice to get to the bottom of this, can you start commenting out code until the xruns go away in reproducible way? if there is some wrong code on the functions used in the monitor part I very much wish to know what went wrong.

thanks