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 537540 - [pulse] Causes a deadlock when the pulseserver dies
[pulse] Causes a deadlock when the pulseserver dies
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 0.10.14
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-06-10 08:35 UTC by Sebastian Dröge (slomo)
Modified: 2009-01-29 13:32 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sebastian Dröge (slomo) 2008-06-10 08:35:54 UTC
Moved from http://pulseaudio.org/ticket/251:

If the pulseserver dies the sinks _write calls GST_ELEMENT_ERROR inside a section with the pulseaudio mainloop mutex locked.. GST_ELEMENT_ERROR locks the element

The _reset function is called with the element locked and wants to lock the the mainloop mutex..

So one thread locks A, B and the other B, A.. Obvious deadlock ensues :( 


--------------------------------------------------------------------------

03/04/08 12:28:31 changed by coling

Just for completeness this does not require pa to "die", the stream just needs to be terminated (e.g. via pavucontrol) to deadlock the application - tested here with rhythmbox.

I think this may also be causing some applications to "go into a memory/cpu cyle eating loop". I've seen problems with e.g. gnome-power-manager and pidgin when I've had to kill PA or the streams after a resume form STR where the alsa driver has hiccuped and not allowed me to play sounds. Reloading the alsa driver "fixes" it but to do so I have to kill PA as it's "hogging" the device due to some frozen gstreamer streams.

Gstreamer streams seem to just sit there when the pa server gets into this state but e.g. paplay will play and quit as usual.
Comment 1 Sebastian Dröge (slomo) 2009-01-29 13:32:54 UTC
This is fixed in GIT and 0.10.14 will contain the fix.