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
