[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