After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 503126 - Starts using 100% of CPU time when pulseaudio gets killed
Starts using 100% of CPU time when pulseaudio gets killed
Status: RESOLVED NOTGNOME
Product: rhythmbox
Classification: Other
Component: playback
0.11.x
Other All
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-12-11 21:07 UTC by freggy1
Modified: 2008-10-23 00:03 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description freggy1 2007-12-11 21:07:39 UTC
Please describe the problem:
When I am setting GNOME/GStreamer to send audio to Pulseaudio (0.9.8), and Rhythmbox is playing while pulseaudio gets killed, rhythmbox will hang completely and start using 100% of cpu time. Restarting pulseaudio does not fix the problem: Rhythmbox has to be killed.

strace of what it is doing in a loop:
{fd=19, events=POLLIN}, {fd=22, events=POLLIN}, {fd=23, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN}, {fd=26, events=POLLIN}, {fd=20, events=POLLIN}, {fd=21, events=POLLIN}], 14, 0) = 0
ioctl(3, FIONREAD, [0])                 = 0
gettimeofday({1197406920, 546847}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=22, events=POLLIN}, {fd=23, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN}, {fd=26, events=POLLIN}, {fd=20, events=POLLIN}, {fd=21, events=POLLIN}], 14, 0) = 0
ioctl(3, FIONREAD, [0])                 = 0
gettimeofday({1197406920, 546955}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=22, events=POLLIN}, {fd=23, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN}, {fd=26, events=POLLIN}, {fd=20, events=POLLIN}, {fd=21, events=POLLIN}], 14, 0) = 0
ioctl(3, FIONREAD, [0])                 = 0
gettimeofday({1197406920, 547062}, NULL) = 0
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=19, events=POLLIN}, {fd=22, events=POLLIN}, {fd=23, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN}, {fd=26, events=POLLIN}, {fd=20, events=POLLIN}, {fd=21, events=POLLIN}], 14, 0) = 0


Steps to reproduce:
1. In gnome-sound-properties set everything to use PulseAudio
2. Let Rhythmbox play some music
3. killall pulseaudio


Actual results:
Rhythmbox uses 100% of CPU time and memory usage increases slowly until the machine runs out of memory. It has to be killed to close it.

Expected results:
Rhythmbox simply stops playing

Does this happen every time?
yes

Other information:
gst-launch handles this fine, so it seems like a Rhythmbox problem.

[frederik@Anastacia Heroes & Thieves]$ gst-launch-0.10 filesrc location=04.\ My\ Best.ogg ! oggdemux ! vorbisdec ! audioconvert ! audioresample ! pulsesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
ERROR: from element /pipeline0/pulsesink0: Disconnected: Connection terminated
Additional debug info:
pulsesink.c(455): gst_pulsesink_write (): /pipeline0/pulsesink0
Execution ended after 16366041000 ns.
Setting pipeline to PAUSED ...

And then it simply stops, without using any CPU time.
Comment 1 Bastien Nocera 2007-12-11 22:25:19 UTC
That's a PulseAudio sink bug, and it lives in PulseAudio.