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 575588 - decodebin2 deadlock
decodebin2 deadlock
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal major
: 0.10.23
Assigned To: Wim Taymans
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-03-16 18:40 UTC by Sebastien Merle
Modified: 2009-03-17 18:11 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GST_DEBUG=5 log when the deadlock occure (480.44 KB, application/x-bzip)
2009-03-16 18:44 UTC, Sebastien Merle
Details
Media file to trigger the deadlock. (976.56 KB, application/octet-stream)
2009-03-16 18:57 UTC, Sebastien Merle
Details

Description Sebastien Merle 2009-03-16 18:40:37 UTC
When playing a file with the pipeline:

  gst-launch -v filesrc location=osvaldo.mpg ! decodebin2 name=decoder ! queue ! autoaudiosink decoder. ! queue ! autovideosink

gstreamer sometime play the file and sometime just deadlock.

The same pipeline just works fine with the classic decodebin.

I'll attach the level 5 log when the deadlock occur,
and I'll try to attached the media file (7255529 B).
Comment 1 Sebastien Merle 2009-03-16 18:44:32 UTC
Created attachment 130773 [details]
GST_DEBUG=5 log when the deadlock occure
Comment 2 Sebastien Merle 2009-03-16 18:57:19 UTC
Created attachment 130774 [details]
Media file to trigger the deadlock. 

Note that the file has been truncated to 1000000 B to be able to upload it,
so errors after 18 seconds are expected.
Comment 3 Wim Taymans 2009-03-17 15:52:48 UTC
bah, very hard to fix, need to rewrite some very racy parts of decodebin2.
Comment 4 Wim Taymans 2009-03-17 18:11:35 UTC
commit 563db0fdca22ff36f66f3db92f2a54f208226d01
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Tue Mar 17 19:09:02 2009 +0100

    decodebin2: add extra dynamic ref for demuxers
    
    When we make a group connected to a demuxer, keep an extra dynamic refcount for
    the group which is only decremented when no_more_pads or a multiqueue overrun is
    detected. This way we avoid a race between exposing the group while more dynamic
    refs are added from new pads.
    
    Fixes #575588.