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

PrevNext  Index
DateFri, 11 Feb 2011 15:25:04 +0100
From Stéphane Letz <[hidden] at grame dot fr>
ToValerio Pilo <[hidden] at akhela dot com>
Cc[hidden] at lists dot jackaudio dot org
In-Reply-ToValerio Pilo [Jack-Devel] Jack 1.9.7 on ARM crashes when killing a client
Follow-UpValerio Pilo Re: [Jack-Devel] Jack 1.9.7 on ARM crashes when killing a client
Le 11 févr. 2011 à 15:08, Valerio Pilo a écrit :

> Hello, I've been experiencing a serious stability problem when running JACK rev 4122 in my ARM box.
> I set up Jack, a couple clients, and a couple connections, and all goes well.
> But as soon as I kill (anything like $(pidof clientname) ), JACK is dead: this is calling jack_lsp after the fact:
> 
> > # jack_lsp
> > JackSocketClientChannel read fail
> > Cannot open lsp client
> > jack_client_open() failed, status = 0x21
> > #
> 
> Here's what jackd -v reports when I kill the client:
> 
> > Jack: Poll client error err = No such file or directory
> > Jack: JackSocketServerChannel::ClientKill ref = 4
> > Jack: JackServer::ClientKill ref = 4
> > Jack: JackEngine::ClientDeactivate ref = 4 name = alsa-jack.jack_NAV_tP.1922.0
> > Jack: JackEngine::PortDisconnect src = 11 dst = 65535
> > Jack: JackEngine::PortDisconnect src = 12 dst = 65535
> > Jack: JackEngine::NotifyClient: no callback for event = 10
> > Jack: JackEngine::NotifyClient: no callback for event = 10
> > Jack: JackExternalClient::ClientNotify ref = 2 name = busmanager notify = 10
> > Jack: JackEngine::NotifyClient: no callback for event = 10
> > Jack: JackEngine::NotifyClient: no callback for event = 10
> > Jack: JackEngine::NotifyClient: no callback for event = 10
> > Jack: JackEngine::NotifyClient: no callback for event = 10
> > Jack: JackExternalClient::ClientNotify ref = 2 name = busmanager notify = 10
> > Jack: JackEngine::NotifyClient: no callback for event = 10
> > Jack: JackEngine::NotifyClient: no callback for event = 10
> > Jack: JackConnectionManager::DirectDisconnect last: ref1 = 4 ref2 = 1
> > Jack: JackGraphManager::DisconnectRefNum cur_index = 10 ref1 = 4 ref2 = 1
> > Jack: JackConnectionManager::DirectDisconnect last: ref1 = 1 ref2 = 4
> > Jack: JackGraphManager::DisconnectRefNum cur_index = 10 ref1 = 1 ref2 = 4
> > Jack: JackProcessSync::TimedWait time out = 20000000
> 
> From that moment and on, jack is MIA until restarted.
> I've attached the full log of the session (jackd-test1.log.bz2), where I marked when I killed the client and ran lsp.
> 
> I've made the same test with jack_metro, obtained in an even simpler way:
> 1) start up jack: /usr/bin/jackd -v -S -r -t 2000 -d alsa -d chrouter -D -r 44100 -S -p 2048 -n 4
> 2) jack_lsp to ensure it's up (it is)
> 3) jack_metro -b 120
> 4) from another shell, pkill -9 jack_metro (SIGKILL, fyi)
> 5) jack_lsp to check if it's dead (it's really dead,  "jack_client_open() failed, status = 0x21")
> This test's log is jackd-test2.log.bz2 .
> 
> On my Centrino 64-bit laptop there's no problem, jack simply removes the dead client and keeps humming happily.
> But on ARM - an NVIDIA tegra ARMv7, btw - It's perfectly reproducible, I've tried it tons of times, with both the ALSA and the dummy plugins.
> 
> I started digging in the code, but I have no idea where the problem may be; do you have any idea or suggestion about this issue?
> Thanks in advance.
> -- 
> Valerio Pilo
> Software Engineer
> --
> X O R O V O
> A University of Cagliari spin-off company
> Parco Tecnologico della Sardegna, Edificio 1
> 0

In both log I see:

ALSA: could not complete playback of 2048 frames: error = -32
JackAudioDriver::ProcessSync: write error, stopping...

So basically ALSA driver stopped completely, so:

1) can you provide a log with dummy driver, since it should behave differently?

2) Backend error handling logic was changed in http://trac.jackaudio.org/changeset/4079, but the log shows that a serious non-revoverable error was detected in ALSA driver... maybe the change in r 4079 is still not correct.

3) I see that jackd is started in synchronous mode (-S), can you try without -S (asynchronous mode) and send the log?


Stéphane 
PrevNext  Index

1297434314.18056_0.ltw:2,a <B7DD22FB-980D-45BF-AA10-767F990368B0 at grame dot fr>