Re: [Jack-Devel] Jack 1.9.7 on ARM crashes when killing a client

PrevNext  Index
DateMon, 14 Feb 2011 10:31:14 +0100
From Stéphane Letz <[hidden] at grame dot fr>
ToValerio Pilo <[hidden] at akhela dot com>, Paul Davis <[hidden] at linuxaudiosystems dot com>, torbenh Hohn <[hidden] at gmx dot de>
Cc"[hidden] at lists dot jackaudio dot org List" <[hidden] at lists dot jackaudio dot org>
In-Reply-ToStéphane Letz Re: [Jack-Devel] Jack 1.9.7 on ARM crashes when killing a client
Follow-Uptorbenh Re: [Jack-Devel] Jack 1.9.7 on ARM crashes when killing a client
Le 11 févr. 2011 à 17:34, Stéphane Letz a écrit :

> 
> Le 11 févr. 2011 à 17:19, Valerio Pilo a écrit :
> 
>> In data venerdì 11 febbraio 2011 17:07:18, hai scritto:
>>>> I just tried Jack 0.118 on the ARM box - it works without a problem, using this cmdline:
>>>>> jackd -v -r -t 2000 -d alsa -d chrouter -D -r 44100 -S -p 2048 -n 4
>>> 
>>> Any log of jack1 when application is killed ?
>> 
>> You can find it attached.
> 
> OK. It seem that JACK1 ALSA backend does not trigger the same error (JACK2 ALSA backend was printing "ALSA: could not complete playback"), but there is no similar error message in JACK1 log.
> 
> So... back to square one. Either :
> 
> - there is a real issue in this ALSA backend on ARM
> 
> - or we consider again this "ALSA: could not complete playback" ALSA backend error as a "recoverable" one at JackAudioDriver level, and we revert part of  r 4079  commit, so that the ALSA Xrun cause a "skipped" cycle, but the server continue to run.
> 
> What do other jack hackers think?
> 
> Stéphane 
> 

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?

Thanks.

Stéphane 
PrevNext  Index

1297675896.16293_0.ltw:2,a <1F5DD71D-D642-47D6-A09C-2080473CD375 at grame dot fr>