Bug 432711

Summary: cpu hang and ui freeze mp3/ogg playback through pulseaudio
Product: [Fedora] Fedora Reporter: Andrew Farris <lordmorgul>
Component: gstreamer-plugins-pulseAssignee: Lennart Poettering <lpoetter>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 9CC: bnocera
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-10-24 20:45:51 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:
Attachments:
Description Flags
rhythmbox-crash-mp3-novtchange.txt
none
rhythmbox_crash_change_vt1.txt
none
rhythmbox-crash-playing.txt
none
rhythmbox_crash_after_galeon_sigsegv.txt
none
rhythmbox-after-firefox-kill-in-gdb.txt
none
rhythmbox-crash-vtswitch-and-pactl-list.txt
none
rhythmbox-crash-oggvorbis-novtchange.txt none

Description Andrew Farris 2008-02-13 22:59:46 UTC
Description of problem:
During playback of an mp3 format file rhythmbox occasionally crashes,
accompanied by a 100% cpu use hang and ui freeze.  There is no output I've seen
yet, but backtraces are attached.

There are two situations in which I'm seeing this type of freeze, both with the
100% cpu hang and unresponsive ui.

1- playback gets blocked by changing VTs making rhythmbox not in the active
session, rhythmbox continues trying to play the track, track time continues
 - when rhythmbox gets focus again in the active session it sometimes continues
to play normally
 - sometimes it freezes up with the cpu hang and the track time stops, the ui is
unresponsive, and rhythmbox must be killed

2- rhythmbox is playing the track normally in the active session, then suddenly
it stops playing, ui becomes unresponsive, track time stops

In both cases it is not just a lack of sound output.  The blocked sound output
while in the inactive session is expected right now, but rhythmbox needs to
remain responsive when the X session is active again.

Version-Release number of selected component (if applicable):
rhythmbox-0.11.4-7.fc9.i386
pulseaudio-0.9.8-5.fc9.i386

gstreamer-0.10.17-1.fc9.i386
gstreamer-plugins-good-0.10.6-7.fc9.i386
gstreamer-plugins-farsight-0.12.5-1.fc8.i386
gstreamer-plugins-base-0.10.17-1.fc9.i386
gstreamer-plugins-bad-extras-0.10.5-15.lvn9.i386
gstreamer-plugins-pulse-0.9.5-0.4.svn20070924.fc8.i386
gstreamer-ffmpeg-0.10.3-1.lvn9.i386
gstreamer-tools-0.10.17-1.fc9.i386
gstreamer-python-0.10.9-1.fc9.i386
gstreamer-debuginfo-0.10.17-1.fc9.i386
gstreamer-plugins-bad-0.10.5-15.lvn9.i386
gstreamer-plugins-ugly-0.10.6-5.lvn9.i386
gstreamer-plugins-schroedinger-0.9.0-2.fc9.i386


How reproducible:
Sporadic crashes, cannot trigger it very reliably

Steps to Reproduce:
1. play track in rhythmbox in active X session
2. change to a virtual terminal
3. return to X session

Backtrace #1 is from situation 2 above, no virtual terminal switching, rhythmbox
stops while the X session is active.

Comment 1 Andrew Farris 2008-02-13 22:59:46 UTC
Created attachment 294851 [details]
rhythmbox-crash-mp3-novtchange.txt

Comment 2 Andrew Farris 2008-02-13 23:02:51 UTC
Created attachment 294852 [details]
rhythmbox_crash_change_vt1.txt

This is changing from X session to VT1 then back to X, no playback while on
VT1, crash noticed when returned to X, cpu spinning, no track time changing

Comment 3 Andrew Farris 2008-02-13 23:07:16 UTC
Created attachment 294853 [details]
rhythmbox-crash-playing.txt

This is a crash again for situation 1 where rhythmbox was playing in active X
session, no vt change, suddenly it just stopped playing.  The first backtrace
posted is the most recent.  The debug symbols were not all installed for the vt
change backtrace.  I'll try to trigger that again but it hasn't happened in a
few days, and Lennart Poettering gave me a couple things to look for regarding
pa device access in that VT change case.

Comment 4 Andrew Farris 2008-02-13 23:11:47 UTC
Created attachment 294854 [details]
rhythmbox_crash_after_galeon_sigsegv.txt

Sorry, comment 3 is for situation 2, and so is this one.  This was again
rhythmbox crashing without change in VT, or anything else I know of effecting
the device access.  This occurred right after Galeon crashed, while debugging
bug# 431162, so this is questionable (cpu was already spinning from galeon,
could have effected this crash).

Comment 5 Andrew Farris 2008-02-14 00:47:49 UTC
Created attachment 294859 [details]
rhythmbox-after-firefox-kill-in-gdb.txt

Here is another crash after killing another process.  Debugging firefox in gdb,
after firefox is hanging, I backtrace firefox while rhythmbox is playing
(everything ok so far).  Then, I kill firefox from within gdb, and immediately
rhythmbox hangs.  This backtrace is from as soon as I could attach to it after
that.  Basically, the same situation as the galeon crash above.

Comment 6 Andrew Farris 2008-02-14 01:15:53 UTC
Created attachment 294861 [details]
rhythmbox-crash-vtswitch-and-pactl-list.txt

Rhythmbox crash after VT switching (it worked fine 3 or 4 times, seemingly just
streaming the song while I was viewing VT1, then playing when I returned (the
position in the song did move, so not paused during that time).  Then after
doing the switch again and returning rhythmbox was frozen.

The attached has the backtrace (attached after the freeze) and 'pactl list'
showing devices not suspended, and 'getfacl /dev/snd/*'.

Comment 7 Andrew Farris 2008-02-14 20:11:48 UTC
Created attachment 294944 [details]
rhythmbox-crash-oggvorbis-novtchange.txt

Occurs with ogg vorbis files as well, so this does not look like an mp3 decoder
related issue.

Comment 8 Andrew Farris 2008-02-15 21:05:05 UTC
Another interesting thing to note, these crashes are happening frequently RIGHT
AFTER some other events in the system, and so fast that they seem related.  For
instance, the kill of a program being debugged in gdb, or crashing immediately
after yum finishes a set of updates/installs.

I just installed imlib, feh, gimmage, and qiv (image viewers) and as soon as the
'Complete!' message from yum showed up rhythmbox hung itself.  I had just tried
to update all my packages and it failed with a yum bug, but did not crash
rhythmbox, so its very circumstantial.

Comment 9 Andrew Farris 2008-02-18 23:51:24 UTC
More details.  Banshee has its own set of problems (not rebuilt in rawhide since
fc8 build) but it is playing mp3 files through gstreamer and pulseaudio just
fine.  I cannot cause banshee to hang like this either by switching consoles or
just playing for hours.  With the very same configuration I can change to
rhythmbox playing and hang it very quickly.

Comment 10 Bastien Nocera 2008-03-28 14:37:54 UTC
Reassigning to gstreamer-plugins-pulse, as it should fail nicely if PulseAudio
loses its access rights on the sound device.

Comment 11 Bug Zapper 2008-05-14 05:11:07 UTC
Changing version to '9' as part of upcoming Fedora 9 GA.
More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 12 Lennart Poettering 2008-10-24 20:45:51 UTC
The pulse plugin from current gstreamer-plugins-good fixes this issue.