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 758859 - A pipeline with multiple queues "hang" (does not exit from pending state), if state is changed from playing to pause and vice versa constantly
A pipeline with multiple queues "hang" (does not exit from pending state), if...
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
1.6.1
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-11-30 16:19 UTC by formruga
Modified: 2015-12-03 21:19 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Application for a bug reproduction (1.65 KB, text/x-csrc)
2015-11-30 16:19 UTC, formruga
Details
State of pipeline in case of deadlock (dot from Gstreamer 0.10) (53.07 KB, image/png)
2015-12-03 15:54 UTC, formruga
Details

Description formruga 2015-11-30 16:19:06 UTC
Created attachment 316540 [details]
Application for a bug reproduction

Please run attached test application, which creates artificial pipeline (the simplest one) "fakesrc ! tee name=t t.src_0 ! queue ! fakesink t.src_1 ! queue ! fakesink" and wait for messages "gst_element_get_state() state pending" printing constantly. For GStreamer 1.x 5 minutes of waiting is typically enough for a bug reproduction. For GStreamer 0.10 10 seconds is enough for a bug reproduction.
Comment 1 formruga 2015-12-03 15:54:20 UTC
Created attachment 316725 [details]
State of pipeline in case of deadlock (dot from Gstreamer 0.10)
Comment 2 formruga 2015-12-03 20:42:32 UTC
After nice chat on #gstreamer with Nicolas Dufresne and Tim-Philipp Muller, I change status from bug to "not a bug", because:
- main reason of unusual behavior is case when one of queues is empty, second is full and sink connected with empty queue wants to preroll (state change from playing to paused). In that case if tee wants to push buffer to full queue, it will be blocked,
- all elements in pipeline behaves as expected,
Comment 3 Tim-Philipp Müller 2015-12-03 21:19:23 UTC
I'm not absolutely certain yet that there isn't a bug here.