Bug 564525

Summary: Pulseaudio daemon hangs/infinite loop.
Product: [Fedora] Fedora Reporter: Sam Varshavchik <mrsam>
Component: pulseaudioAssignee: Lennart Poettering <lpoetter>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: low    
Version: rawhideCC: hoffmann, lkundrak, lpm48, lpoetter, mrsam, olecomte, pnewell0705
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 559032 Environment:
Last Closed: 2010-02-15 13:40:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 559032    
Bug Blocks:    

Description Sam Varshavchik 2010-02-13 00:37:52 UTC
Latest 0.9.21 errata triggers an infinite loop in the pulseaudio daemon. Reproducible when Firefox plays specific effects, under certain conditions. Downgrading to 0.9.19 restores firefox functionality.

Version-Release number of selected component (if applicable):
pulseaudio-0.9.21-4.fc12.i686

How reproducible:

always

Steps to Reproduce:

1. Install the Gmail notifier Firefox plugin

2. Configure the Gmail notifier to use /usr/share/sounds/purple/login.wav as
the new mail notifier

3. Send yourself a test message

4. Close then restart Firefox

Actual results:

The first two or three chimes of login.wav are played, then Firefox locks up.
Killing the pulseaudio process un-freezes Firefox. Killing the Firefox process
instead of pulseaudio pegs the pulseaudio process at 100% CPU, where it remains
completely unresponsive:

Tasks: 169 total,   2 running, 167 sleeping,   0 stopped,   0 zombie
Cpu(s): 25.4%us, 12.1%sy,  2.8%ni, 11.9%id, 47.4%wa,  0.1%hi,  0.2%si,  0.0%st
Mem:   2062404k total,   660156k used,  1402248k free,    30820k buffers
Swap:   506036k total,        0k used,   506036k free,   428340k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1634 mrsam      9 -11 99.6m 5244 4304 R 95.1  0.3   0:04.43 pulseaudio
    1 root      20   0  2024  780  564 S  0.0  0.0   0:01.44 init
    2 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0

$ strace -p 1634

Process 1634 attached - interrupt to quit
ppoll([{fd=4, events=POLLIN}, {fd=40, events=POLLIN}, {fd=33, events=0}, {fd=20, events=POLLIN}, {fd=28, events=POLLIN}, {fd=9, events=POLLIN}, {fd=36, events=POLLIN}, {fd=35, events=POLLIN}, {fd=34, events=POLLIN}, {fd=7, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=31, events=POLLIN}, {fd=30, events=POLLIN|POLLERR|POLLHUP}, {fd=30, events=0}, {fd=23, events=POLLIN}, {fd=26, events=POLLIN}, {fd=16, events=POLLIN}, {fd=19, events=POLLIN}, {fd=15, events=POLLIN|POLLERR|POLLHUP}, {fd=15, events=0}, {fd=14, events=POLLIN}, {fd=13, events=POLLIN}, {fd=6, events=POLLIN}], 25, NULL, NULL, 8) = 1 ([{fd=33, revents=POLLHUP}])
ppoll([{fd=4, events=POLLIN}, {fd=40, events=POLLIN}, {fd=33, events=0}, {fd=20, events=POLLIN}, {fd=28, events=POLLIN}, {fd=9, events=POLLIN}, {fd=36, events=POLLIN}, {fd=35, events=POLLIN}, {fd=34, events=POLLIN}, {fd=7, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=32, events=POLLIN}, {fd=31, events=POLLIN}, {fd=30, events=POLLIN|POLLERR|POLLHUP}, {fd=30, events=0}, {fd=23, events=POLLIN}, {fd=26, events=POLLIN}, {fd=16, events=POLLIN}, {fd=19, events=POLLIN}, {fd=15, events=POLLIN|POLLERR|POLLHUP}, {fd=15, events=0}, {fd=14, events=POLLIN}, {fd=13, events=POLLIN}, {fd=6, events=POLLIN}], 25, NULL, NULL, 8) = 1 ([{fd=33, revents=POLLHUP}])

...

and so on, to infinity.

Expected results:

New mail notification plays to the end.

Additional info:

Rolling back via "yum downgrade pulseaudio" fixes this problem.

Comment 1 Lennart Poettering 2010-02-15 13:40:46 UTC

*** This bug has been marked as a duplicate of bug 559467 ***