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 667828 - [hlsdemux] Update thread is blocked by fetcher thread in getting from playing state to pause state
[hlsdemux] Update thread is blocked by fetcher thread in getting from playing...
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-01-12 22:31 UTC by Syed Idris Shah
Modified: 2013-03-14 12:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Removing the deadlock by stopping the fetcher thread before update thread. (661 bytes, patch)
2012-01-12 22:31 UTC, Syed Idris Shah
none Details | Review

Description Syed Idris Shah 2012-01-12 22:31:16 UTC
Created attachment 205148 [details] [review]
Removing the deadlock by stopping the fetcher thread before update thread.

I have observed update thread blocked by fetcher thread while going from PLAYING to PAUSE state. Fetcher thread should be stopped before stopping the update thread. 

I am attaching a proposed patch for the fix. It works fine for me.
Comment 1 Vincent Penquerc'h 2012-01-18 11:39:13 UTC
Do you have a way to reproduce the issue with more likelyhood ?
Comment 2 Syed Idris Shah 2012-01-18 17:37:57 UTC
(In reply to comment #1)
> Do you have a way to reproduce the issue with more likelyhood ?

No, There are no definite steps to reproduce it. But lete me explain my setup. this may help in understanding the issue. I was testing hlsdemux on N9 platform (MeeGo) with webkit. The platform had a resource management system working. I was playing hls stream then moving the browser to background and foreground, when i expereienced this issue. 

In the code itself, gst_hls_demux_stop_update is always called after gst_hls_demux_stop_fetcher except in this particular case. I also verified with backtrace that fetcher thread is indeed blocking the update thread. If this patch, i did not experience any deadlock.
Comment 3 Wim Taymans 2013-03-14 12:44:41 UTC
Nothing should be stopped in PAUSED.