Re: [Jack-Devel] Jack 1.9.7 on ARM crashes when killing a client
>>>
>>
>> Since I cannot reproduce the original issue here on my Linux machine, I cannot go much further. To summarize:
>>
>> - when JACK2 in synchronous mode, the server does : blocking ALSA read (actually, wait + read), graph activation, wait for graph to complete, write ALSA.
>>
>> - when a client is killed, it may fail to correctly complete a cycle, before the server detect the client has been removed, and cleanup the graph. The server has a timeout to decide when the graph has really failed before trying to write back in ALSA. Since the server is late, ALSA backend issue a "ALSA: could not complete playback" error in alsa_driver_write. This is considered as a "non recoverable error" and the backend wrapping thread is just stopped.
>>
>> - how does JACK1 behave is a similar situation? I guess there is a "graph late" problem also? Is there a timeout to decide when the graph has really failed? why is the "ALSA: could not complete playback" error not triggered in this precise case?
>
> jack1 will be late too.
> but jack1 does not try to write to the driver when the graph is late.
> the next alsa wait will detect the xrun and recover.
> so the next cycle, things should be fine again.
>
OK this makes sense, Valerio here a patch to test that does not write back in the backend if the "graph process" fails:
Can you try is and report?
Thanks
Stéphane
* Attachment: 'AUDIO_DRIVER.diff'
content-type: application/octet-stream
1297692909.19596_0.ltw:2,a <77AD61A4-60AD-4905-A34A-65D07BB081DA at grame dot fr>