On 06/07/2010 10:29 AM, Stéphane Letz wrote:
> 
> Le 7 juin 2010 à 01:49, Robin Gareus a écrit :
> 
>> Well I did the switch: jackd here is now jackdmp.. and [almost]
>> everything works just like before.
>>
>> The motivation for this was to benefit from the re-loadable backend
>> feature of jackdmp for two reasons:
>>
>> - to be able to quickly switch between internal and external soundcards
>> - have JACK sessions survive suspend/resume cycles (using dummy backend)
>>
>> After some initial testing I was quite enthusiastic. It looks very
>> smooth on the surface. but - or course - the devil is in the details:
>>
>> Calling `jack_control sm` drops existing connections to system:* ports.
>> OK. They may be different but here they're not. no problem: this can be
>> remedied with a simple shell script.
>> But worse: both patchage (v0.4.4) & qjackctl (v0.3.6.22) go haywire
>> (either 100% CPU usage,  disconnect or crash) when replacing the
>> back-end while they're running. I have not yet found a pattern in the
>> app's behaviour.
> 
> Any log to help finding if jack2 is the problem?

I don't think it is. jack2 continues to run & play just fine.

The only messages in ~/.log/jack/jackdbus.log are:

 ERROR: Failed to find port 'system:playback_1' to [dis]connect
 ERROR: Failed to find port 'system:playback_2' to [dis]connect

Maybe this is related to the way patchage/qjackctl handle port
connections?! They hit a NULL pointer and then either crash or end up in
some funny state..

However jack2/dbus live-locks if I don't switch it to the dummy
interface before suspending the machine. jack1 just exits and jackdmp
produces tens of thousands of
 ALSA: channel flush for playback failed (File descriptor in bad state)
 JackAudioDriver::ProcessAsync: read error, skip cycle

error message which probably explain the live-lock.
That is also weird, because I've started 'jackd -S' so why would I get
ProcessAsync. Maybe the '-S' option is not passed through to jackdbus?!
I'll investigate..

In some earlier experiments I've seen jack2 crash; I've attached the
log, but jackdmp is not compiled with --debug so I'm not sure if they're
helpful.


>>
>> Qjackctl's issue can be worked around by stopping it before doing the
>> switch: 'dbus-send --system /org/rncbc/qjackctl org.rncbc.qjackctl.stop'
>> but re-starting it after the switch fails if the qjackctl setup does not
>> match the current active hardware (it tries to start a 2nd jackd
>> instead); otherwise it works just fine.
>>
>> ardour2 disconnects if I switch directly between two alsa backends.
>> however going alsa,hw:0 -> dummy -> alsa,hw:1 works.
>>
>> Clearly there's some issue remaining to be worked out.
>>
>> The good news: both mplayer and alsa-plug have no problem with me
>> changing the jackd-backend (while retaining sample-rate and buffersize)
>> even while they're playing; so I'm good most of the time :)
>>
>> The scripts I use are available at http://rg42.org/wiki/jack2contol
>>
>> Has anyone else ventured down that road and has a similar setup running?
>> Can someone reproduce these problems?
>>
>> Cheers!
>> robin
> 
> 
> Stéphane 
Thu Jun  3 21:02:45 2010: ESC[1mESC[31mERROR: Failed to find port 
'system:playback_1' to [dis]connectESC[0m
Thu Jun  3 21:02:45 2010: ESC[1mESC[31mERROR: Failed to find port 
'system:playback_2' to [dis]connectESC[0m
Thu Jun  3 21:02:51 2010: Client 'system' with PID 0 is out
Thu Jun  3 21:02:51 2010: Released audio card Audio1
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: Segmentation Fault!ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: info.si_signo = 11ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: info.si_errno = 0ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: info.si_code  = 1 
(SEGV_MAPERR)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: info.si_addr  = 0xcESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[00]       = 0x00000033ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[01]       = 0x00000000ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[02]       = 0x0000007bESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[03]       = 0x0000007bESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[04]       = 0x080a752fESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[05]       = 0x080a4527ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[06]       = 0xbf837b80ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[07]       = 0xbf837b3cESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[08]       = 0xb75efff4ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[09]       = 0x00000000ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[10]       = 0x00000000ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[11]       = 0x00000000ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[12]       = 0x0000000eESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[13]       = 0x00000004ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[14]       = 0xb7518b40ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[15]       = 0x00000073ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[16]       = 0x00210206ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[17]       = 0xbf837b3cESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: reg[18]       = 0x0000007bESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: Stack trace:ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  1: 0xb7518b40 
<(null)+3075574592> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  2: 0xb751ad86 
<(null)+3075583366> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  3: 0xb751d1ae <__libc_malloc+94> 
(/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  4: 0xb7558609 
<(null)+3075835401> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  5: 0xb756349c 
<(null)+3075880092> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  6: 0xb7565087 
<(null)+3075887239> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  7: 0xb7565179 
<(null)+3075887481> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  8: 0xb7564eb3 
<(null)+3075886771> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  9: 0xb7565087 
<(null)+3075887239> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  10: 0xb7565179 
<(null)+3075887481> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  11: 0xb7565547 
<(null)+3075888455> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  12: 0xb75670f2 <regcomp+194> 
(/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  13: 0xb770b9b9 
<(null)+3077618105> (/usr/lib/jack/jack_alsa.so)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  14: 0xb770babc 
<(null)+3077618364> (/usr/lib/jack/jack_alsa.so)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  15: 0xb770c75b 
<(null)+3077621595> (/usr/lib/jack/jack_alsa.so)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  16: 0xb76bd754 
<Jack::JackThreadedDriver::Close()+20> (/usr/lib/libjackserver.so.0)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  17: 0xb76bb9b2 
<Jack::JackServer::SwitchMaster(jack_driver_desc_t*, _JSList*)+66> 
(/usr/lib/libj
ackserver.so.0)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  18: 0xb76c1116 
<jackctl_server_switch_master+54> (/usr/lib/libjackserver.so.0)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  19: 0x804c86a <(null)+134531178> 
(/usr/bin/jackdbus)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  20: 0x804fd99 <(null)+134544793> 
(/usr/bin/jackdbus)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  21: 0x804bc89 <(null)+134528137> 
(/usr/bin/jackdbus)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  22: 0xb7637973 
<(null)+3076749683> (/lib/libdbus-1.so.3)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  23: 0xb762a5bc 
<dbus_connection_dispatch+972> (/lib/libdbus-1.so.3)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  24: 0xb762a8a8 
<(null)+3076696232> (/lib/libdbus-1.so.3)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  25: 0x804c34f <(null)+134529871> 
(/usr/bin/jackdbus)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR:  26: 0xb74c3b55 
<__libc_start_main+229> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:02:51 2010: ESC[1mESC[31mERROR: End of stack traceESC[0m
Thu Jun  3 21:03:01 2010: ESC[1mESC[31mERROR: JackProcessSync::LockedTimedWait 
error usec = 5000000 err = Connection timed outESC[0m
Thu Jun  3 21:03:01 2010: ESC[1mESC[31mERROR: JackEngine::ClientDeactivate wait 
error ref = 4 name = qjackctlESC[0m
Thu Jun  3 21:03:02 2010: ESC[1mESC[31mERROR: JackProcessSync::LockedTimedWait 
error usec = 1000000 err = Connection timed outESC[0m
Thu Jun  3 21:03:02 2010: ESC[1mESC[31mERROR: JackEngine::ClientCloseAux wait 
error ref = 4ESC[0m
Thu Jun  3 21:03:02 2010: Client 'qjackctl' with PID 5465 is out
Thu Jun  3 21:03:45 2010: ------------------
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: Segmentation Fault!ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: info.si_signo = 11ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: info.si_errno = 0ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: info.si_code  = 1 
(SEGV_MAPERR)ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: info.si_addr  = 0x800306fESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[00]       = 0x00000033ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[01]       = 0x00000000ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[02]       = 0x0000007bESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[03]       = 0x0000007bESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[04]       = 0x080a5808ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[05]       = 0x0805a3c4ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[06]       = 0xbfc46518ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[07]       = 0xbfc464acESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[08]       = 0x0805a41cESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[09]       = 0x0800306fESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[10]       = 0x080a7e70ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[11]       = 0x0800306fESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[12]       = 0x0000000eESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[13]       = 0x00000004ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[14]       = 0xb763e44aESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[15]       = 0x00000073ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[16]       = 0x00210202ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[17]       = 0xbfc464acESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: reg[18]       = 0x0000007bESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: Stack trace:ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR:  1: 0xb763e44a <strcmp+10> 
(/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR:  2: 0xb7755973 
<(null)+3077921139> (/lib/libdbus-1.so.3)ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR:  3: 0xb77485bc 
<dbus_connection_dispatch+972> (/lib/libdbus-1.so.3)ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR:  4: 0xb77488a8 
<(null)+3077867688> (/lib/libdbus-1.so.3)ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR:  5: 0x804c34f <(null)+134529871> 
(/usr/bin/jackdbus)ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR:  6: 0xb75e1b55 
<__libc_start_main+229> (/lib/i686/cmov/libc.so.6)ESC[0m
Thu Jun  3 21:29:37 2010: ESC[1mESC[31mERROR: End of stack traceESC[0m
Thu Jun  3 21:29:37 2010: ------------------
_______________________________________________
Linux-audio-dev mailing list
[email protected]
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to