[pulseaudio-tickets] [PulseAudio] #264: Audio stops after hibernate until closing all programs/connections to PA
PulseAudio
trac-noreply at tango.0pointer.de
Tue Aug 11 18:07:38 PDT 2009
#264: Audio stops after hibernate until closing all programs/connections to PA
-------------------------+--------------------------------------------------
Reporter: theg33kb0y | Owner: lennart
Type: defect | Status: closed
Milestone: | Component: daemon
Resolution: fixed | Keywords: hibernate hibernation no sound xmms flashplayer
-------------------------+--------------------------------------------------
Changes (by lennart):
* status: reopened => closed
* resolution: => fixed
Old description:
> Since I started using PA (Fedora 8), after all audio programs are closed
> and reopened. Below are the steps I have taken to troubleshoot a problem.
> There are 10 steps in this example to reproduce the bug. Debug output is
> inline between "========" as code blocks. Is this a bug in PA after
> resume, or a configuration problem? After an afternoon of research,
> there does not appear to be any configuration change to adjust this
> behavior.
>
> Thank you!
>
> -Eric
>
> 0. start pulseaudio -vvv[[BR]]
> 1. open xmms, start mp3 playing through pulse audio.[[BR]]
> 2. hibernate[[BR]]
> 3. resume[[BR]]
> 4. xmms has stopped playing at this point. I try to play any track from
> the existing xmms playlist, which fails. Each attempt to play a track
> results in this debug output from pulseaudio:
> {{{
> ===========================================================================
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> I: sink-input.c: Freeing output 5 "ALSA Playback"
> I: client.c: Freed 2 "ALSA plug-in [xmms]"
> I: protocol-native.c: connection died.
> I: client.c: Created 3 "Native client (UNIX socket client)"
> I: protocol-native.c: Got credentials: uid=500 gid=500 success=1
> I: protocol-native.c: Enabled SHM for new connection
> I: client.c: Client 3 changed name from "Native client (UNIX socket
> client)" to "ALSA plug-in [xmms]"
> I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
> native.c$ALSA plug-in [xmms]>
> I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
> native.c$ALSA plug-in [xmms]>
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
> I: resampler.c: Forcing resampler 'copy', because of fixed, identical
> sample rates.
> D: resampler.c: Channel matrix:
> D: resampler.c: I00
> D: resampler.c: +------
> D: resampler.c: O00 | 1.000
> D: resampler.c: O01 | 1.000
> I: resampler.c: Using resampler 'copy'
> I: resampler.c: Using s16le as working format.
> I: sink-input.c: Created input 6 "ALSA Playback" on alsa_output.hw_0 with
> sample spec s16le 1ch 44100Hz and channel map mono
> D: memblockq.c: memblockq requested: maxlength=66150, tlength=44100,
> base=2, prebuf=39690, minreq=4410
> D: memblockq.c: memblockq sanitized: maxlength=66150, tlength=44100,
> base=2, prebuf=39690, minreq=4410
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> I: sink-input.c: Freeing output 6 "ALSA Playback"
> I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
> native.c$ALSA plug-in [xmms]>
> I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
> native.c$ALSA plug-in [xmms]>
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
> I: resampler.c: Forcing resampler 'copy', because of fixed, identical
> sample rates.
> D: resampler.c: Channel matrix:
> D: resampler.c: I00
> D: resampler.c: +------
> D: resampler.c: O00 | 1.000
> D: resampler.c: O01 | 1.000
> I: resampler.c: Using resampler 'copy'
> I: resampler.c: Using s16le as working format.
> I: sink-input.c: Created input 7 "ALSA Playback" on alsa_output.hw_0 with
> sample spec s16le 1ch 44100Hz and channel map mono
> D: memblockq.c: memblockq requested: maxlength=66150, tlength=44100,
> base=2, prebuf=39690, minreq=4410
> D: memblockq.c: memblockq sanitized: maxlength=66150, tlength=44100,
> base=2, prebuf=39690, minreq=4410
> ===========================================================================
> }}}
> 5. Repeats of step-4 result in nearly identical output, but the
> input/output descriptors increment.
> [[BR]]
> [[BR]]
> 6. Open flashplayer and play pandora.com's interface swf (directly, not
> through firefox) - no audio. Output from step-6:
> [[BR]]
> {{{
> ===========================================================================
> I: client.c: Created 5 "Native client (UNIX socket client)"
> I: protocol-native.c: Got credentials: uid=500 gid=500 success=1
> I: protocol-native.c: Enabled SHM for new connection
> I: client.c: Client 5 changed name from "Native client (UNIX socket
> client)" to "Adobe Flash"
> I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
> native.c$Adobe Flash>
> I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
> native.c$Adobe Flash>
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
> I: sink-input.c: Created input 10 "Flash Animation" on alsa_output.hw_0
> with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
> D: memblockq.c: memblockq requested: maxlength=132300, tlength=88200,
> base=4, prebuf=86436, minreq=1764
> D: memblockq.c: memblockq sanitized: maxlength=132300, tlength=88200,
> base=4, prebuf=86436, minreq=1764
> ===========================================================================
> }}}
> 7. Close pandora (flashplayer). Output from step-7:
> {{{
> ===========================================================================
> I: sink-input.c: Freeing output 10 "Flash Animation"
> I: client.c: Freed 5 "Adobe Flash"
> I: protocol-native.c: connection died.
> ===========================================================================
> }}}
> 8. Attempt to play another track in xmms, which is still open from before
> hibernation. Results in same output as step-4 and does not play audio.
> [[BR]]
> [[BR]]
> 9. Close xmms. Output after closing xmms:
> {{{
> ===========================================================================
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> I: sink-input.c: Freeing output 12 "ALSA Playback"
> I: client.c: Freed 6 "ALSA plug-in [xmms]"
> I: protocol-native.c: connection died.
> I: module-suspend-on-idle.c: Sink alsa_output.hw_0 idle for too long,
> suspending ...
> I: module-alsa-sink.c: Device suspended...
> ===========================================================================
> }}}
> 10. Open xmms and play audio track. At this point all connections to PA
> are closed (note the device suspended line in step-9's output) and the
> track plays properly.
> Debug output from PA for this successfull output (this debug output
> includes closing xmms after successfully playing an mp3):
> {{{
> ===========================================================================
> I: client.c: Created 7 "Native client (UNIX socket client)"
> I: protocol-native.c: Got credentials: uid=500 gid=500 success=1
> I: protocol-native.c: Enabled SHM for new connection
> I: client.c: Client 7 changed name from "Native client (UNIX socket
> client)" to "ALSA plug-in [xmms]"
> I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
> native.c$ALSA plug-in [xmms]>
> I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
> native.c$ALSA plug-in [xmms]>
> I: module-alsa-sink.c: Trying resume...
> I: module-alsa-sink.c: Resumed successfully...
> I: module-alsa-sink.c: Starting playback.
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
> I: resampler.c: Forcing resampler 'copy', because of fixed, identical
> sample rates.
> D: resampler.c: Channel matrix:
> D: resampler.c: I00
> D: resampler.c: +------
> D: resampler.c: O00 | 1.000
> D: resampler.c: O01 | 1.000
> I: resampler.c: Using resampler 'copy'
> I: resampler.c: Using s16le as working format.
> I: sink-input.c: Created input 13 "ALSA Playback" on alsa_output.hw_0
> with sample spec s16le 1ch 44100Hz and channel map mono
> D: memblockq.c: memblockq requested: maxlength=66150, tlength=44100,
> base=2, prebuf=39690, minreq=4410
> D: memblockq.c: memblockq sanitized: maxlength=66150, tlength=44100,
> base=2, prebuf=39690, minreq=4410
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> I: sink-input.c: Freeing output 13 "ALSA Playback"
> I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
> native.c$ALSA plug-in [xmms]>
> I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
> native.c$ALSA plug-in [xmms]>
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
> I: resampler.c: Forcing resampler 'copy', because of fixed, identical
> sample rates.
> D: resampler.c: Channel matrix:
> D: resampler.c: I00
> D: resampler.c: +------
> D: resampler.c: O00 | 1.000
> D: resampler.c: O01 | 1.000
> I: resampler.c: Using resampler 'copy'
> I: resampler.c: Using s16le as working format.
> I: sink-input.c: Created input 14 "ALSA Playback" on alsa_output.hw_0
> with sample spec s16le 1ch 44100Hz and channel map mono
> D: memblockq.c: memblockq requested: maxlength=66150, tlength=44100,
> base=2, prebuf=39690, minreq=4410
> D: memblockq.c: memblockq sanitized: maxlength=66150, tlength=44100,
> base=2, prebuf=39690, minreq=4410
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
> I: sink-input.c: Freeing output 14 "ALSA Playback"
> I: client.c: Freed 7 "ALSA plug-in [xmms]"
> I: protocol-native.c: connection died.
> I: module-suspend-on-idle.c: Sink alsa_output.hw_0 idle for too long,
> suspending ...
> I: module-alsa-sink.c: Device suspended...
> ===========================================================================
>
> }}}
New description:
Since I started using PA (Fedora 8), after all audio programs are closed
and reopened. Below are the steps I have taken to troubleshoot a problem.
There are 10 steps in this example to reproduce the bug. Debug output is
inline between "========" as code blocks. Is this a bug in PA after
resume, or a configuration problem? After an afternoon of research, there
does not appear to be any configuration change to adjust this behavior.
Thank you!
-Eric
0. start pulseaudio -vvv[[BR]]
1. open xmms, start mp3 playing through pulse audio.[[BR]]
2. hibernate[[BR]]
3. resume[[BR]]
4. xmms has stopped playing at this point. I try to play any track from
the existing xmms playlist, which fails. Each attempt to play a track
results in this debug output from pulseaudio:
{{{
===========================================================================
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
I: sink-input.c: Freeing output 5 "ALSA Playback"
I: client.c: Freed 2 "ALSA plug-in [xmms]"
I: protocol-native.c: connection died.
I: client.c: Created 3 "Native client (UNIX socket client)"
I: protocol-native.c: Got credentials: uid=500 gid=500 success=1
I: protocol-native.c: Enabled SHM for new connection
I: client.c: Client 3 changed name from "Native client (UNIX socket
client)" to "ALSA plug-in [xmms]"
I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
native.c$ALSA plug-in [xmms]>
I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
native.c$ALSA plug-in [xmms]>
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
I: resampler.c: Forcing resampler 'copy', because of fixed, identical
sample rates.
D: resampler.c: Channel matrix:
D: resampler.c: I00
D: resampler.c: +------
D: resampler.c: O00 | 1.000
D: resampler.c: O01 | 1.000
I: resampler.c: Using resampler 'copy'
I: resampler.c: Using s16le as working format.
I: sink-input.c: Created input 6 "ALSA Playback" on alsa_output.hw_0 with
sample spec s16le 1ch 44100Hz and channel map mono
D: memblockq.c: memblockq requested: maxlength=66150, tlength=44100,
base=2, prebuf=39690, minreq=4410
D: memblockq.c: memblockq sanitized: maxlength=66150, tlength=44100,
base=2, prebuf=39690, minreq=4410
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
I: sink-input.c: Freeing output 6 "ALSA Playback"
I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
native.c$ALSA plug-in [xmms]>
I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
native.c$ALSA plug-in [xmms]>
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
I: resampler.c: Forcing resampler 'copy', because of fixed, identical
sample rates.
D: resampler.c: Channel matrix:
D: resampler.c: I00
D: resampler.c: +------
D: resampler.c: O00 | 1.000
D: resampler.c: O01 | 1.000
I: resampler.c: Using resampler 'copy'
I: resampler.c: Using s16le as working format.
I: sink-input.c: Created input 7 "ALSA Playback" on alsa_output.hw_0 with
sample spec s16le 1ch 44100Hz and channel map mono
D: memblockq.c: memblockq requested: maxlength=66150, tlength=44100,
base=2, prebuf=39690, minreq=4410
D: memblockq.c: memblockq sanitized: maxlength=66150, tlength=44100,
base=2, prebuf=39690, minreq=4410
===========================================================================
}}}
5. Repeats of step-4 result in nearly identical output, but the
input/output descriptors increment.
[[BR]]
[[BR]]
6. Open flashplayer and play pandora.com's interface swf (directly, not
through firefox) - no audio. Output from step-6:
[[BR]]
{{{
===========================================================================
I: client.c: Created 5 "Native client (UNIX socket client)"
I: protocol-native.c: Got credentials: uid=500 gid=500 success=1
I: protocol-native.c: Enabled SHM for new connection
I: client.c: Client 5 changed name from "Native client (UNIX socket
client)" to "Adobe Flash"
I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
native.c$Adobe Flash>
I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
native.c$Adobe Flash>
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
I: sink-input.c: Created input 10 "Flash Animation" on alsa_output.hw_0
with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
D: memblockq.c: memblockq requested: maxlength=132300, tlength=88200,
base=4, prebuf=86436, minreq=1764
D: memblockq.c: memblockq sanitized: maxlength=132300, tlength=88200,
base=4, prebuf=86436, minreq=1764
===========================================================================
}}}
7. Close pandora (flashplayer). Output from step-7:
{{{
===========================================================================
I: sink-input.c: Freeing output 10 "Flash Animation"
I: client.c: Freed 5 "Adobe Flash"
I: protocol-native.c: connection died.
===========================================================================
}}}
8. Attempt to play another track in xmms, which is still open from before
hibernation. Results in same output as step-4 and does not play audio.
[[BR]]
[[BR]]
9. Close xmms. Output after closing xmms:
{{{
===========================================================================
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
I: sink-input.c: Freeing output 12 "ALSA Playback"
I: client.c: Freed 6 "ALSA plug-in [xmms]"
I: protocol-native.c: connection died.
I: module-suspend-on-idle.c: Sink alsa_output.hw_0 idle for too long,
suspending ...
I: module-alsa-sink.c: Device suspended...
===========================================================================
}}}
10. Open xmms and play audio track. At this point all connections to PA
are closed (note the device suspended line in step-9's output) and the
track plays properly.
Debug output from PA for this successfull output (this debug output
includes closing xmms after successfully playing an mp3):
{{{
===========================================================================
I: client.c: Created 7 "Native client (UNIX socket client)"
I: protocol-native.c: Got credentials: uid=500 gid=500 success=1
I: protocol-native.c: Enabled SHM for new connection
I: client.c: Client 7 changed name from "Native client (UNIX socket
client)" to "ALSA plug-in [xmms]"
I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
native.c$ALSA plug-in [xmms]>
I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
native.c$ALSA plug-in [xmms]>
I: module-alsa-sink.c: Trying resume...
I: module-alsa-sink.c: Resumed successfully...
I: module-alsa-sink.c: Starting playback.
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
I: resampler.c: Forcing resampler 'copy', because of fixed, identical
sample rates.
D: resampler.c: Channel matrix:
D: resampler.c: I00
D: resampler.c: +------
D: resampler.c: O00 | 1.000
D: resampler.c: O01 | 1.000
I: resampler.c: Using resampler 'copy'
I: resampler.c: Using s16le as working format.
I: sink-input.c: Created input 13 "ALSA Playback" on alsa_output.hw_0 with
sample spec s16le 1ch 44100Hz and channel map mono
D: memblockq.c: memblockq requested: maxlength=66150, tlength=44100,
base=2, prebuf=39690, minreq=4410
D: memblockq.c: memblockq sanitized: maxlength=66150, tlength=44100,
base=2, prebuf=39690, minreq=4410
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
I: sink-input.c: Freeing output 13 "ALSA Playback"
I: module-volume-restore.c: Restoring sink for <pulsecore/protocol-
native.c$ALSA plug-in [xmms]>
I: module-volume-restore.c: Restoring volume for <pulsecore/protocol-
native.c$ALSA plug-in [xmms]>
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes busy.
I: resampler.c: Forcing resampler 'copy', because of fixed, identical
sample rates.
D: resampler.c: Channel matrix:
D: resampler.c: I00
D: resampler.c: +------
D: resampler.c: O00 | 1.000
D: resampler.c: O01 | 1.000
I: resampler.c: Using resampler 'copy'
I: resampler.c: Using s16le as working format.
I: sink-input.c: Created input 14 "ALSA Playback" on alsa_output.hw_0 with
sample spec s16le 1ch 44100Hz and channel map mono
D: memblockq.c: memblockq requested: maxlength=66150, tlength=44100,
base=2, prebuf=39690, minreq=4410
D: memblockq.c: memblockq sanitized: maxlength=66150, tlength=44100,
base=2, prebuf=39690, minreq=4410
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
D: module-suspend-on-idle.c: Sink alsa_output.hw_0 becomes idle.
I: sink-input.c: Freeing output 14 "ALSA Playback"
I: client.c: Freed 7 "ALSA plug-in [xmms]"
I: protocol-native.c: connection died.
I: module-suspend-on-idle.c: Sink alsa_output.hw_0 idle for too long,
suspending ...
I: module-alsa-sink.c: Device suspended...
===========================================================================
}}}
--
Comment:
alexg, we handle ESTRPIPE properly in PA. And have done so since about
ever. If Suspend doesn't work nonetheless this is usually a problem in the
audio driver.
--
Ticket URL: <http://pulseaudio.org/ticket/264#comment:6>
PulseAudio <http://pulseaudio.org/>
The PulseAudio Sound Server
More information about the pulseaudio-bugs
mailing list