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

PrevNext  Index
DateFri, 11 Feb 2011 15:08:00 +0100
From Valerio Pilo <[hidden] at akhela dot com>
To[hidden] at lists dot jackaudio dot org
Follow-UpStéphane Letz Re: [Jack-Devel] Jack 1.9.7 on ARM crashes when killing a client
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
09010 - Pula, loc. Piscinamanna (CA) - Italy
--
skype: valerio.pilo
phone: 070 9243 2663

* Attachment: 'jackd-test1.log.bz2'
content-type: application/x-bzip
* Attachment: 'jackd-test2.log.bz2'
content-type: application/x-bzip
PrevNext  Index

1297433300.15910_0.ltw:2,a <201102111508.00588.valerio.pilo at akhela dot com>