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 465015 - [playbin] Not removed probes causes deadlocks in streaming mode
[playbin] Not removed probes causes deadlocks in streaming mode
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 0.10.15
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-08-09 11:47 UTC by Josep Torra Valles
Modified: 2007-11-02 12:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to fix the bug (3.52 KB, patch)
2007-08-09 11:48 UTC, Josep Torra Valles
committed Details | Review

Description Josep Torra Valles 2007-08-09 11:47:05 UTC
When playbin is in streaming mode a probe is installed in one of the queues to track buffering.

This probe is removed when the overrun signal is fired and queue_threshold_reached  is call.

If queue without the probe triggers for queue_threshold_reached, the probe is not removed.

If group is commited and overrun signal is removed the probe is not removed.

That causes deadlocks with decodebin1 and decodebin2, more often with decodebin2 because the group commit case.
Comment 1 Josep Torra Valles 2007-08-09 11:48:54 UTC
Created attachment 93353 [details] [review]
Patch to fix the bug
Comment 2 Jan Schmidt 2007-08-09 12:07:43 UTC
Looks good to me. Committed:

        * gst/playback/gstplaybasebin.c: (group_commit),
        (queue_remove_probe), (queue_threshold_reached):

        Patch by: Josep Torra Valles <josep@fluendo.com>
        Fixes: #465015
        Make sure we remove the check_queues buffer probe from the
        correct queue to avoid racily going back to "buffering 99%" when
        buffering is actually complete.
Comment 3 Tim-Philipp Müller 2007-11-02 12:29:32 UTC
This seems to have caused a crasher regression with external subtitles, see bug #491722.

Also, I think the group lock needs to be taken before calling get_active_group().