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 672751 - Error messages after removing object from track [pitivi]
Error messages after removing object from track [pitivi]
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-editing-services
git master
Other Linux
: Normal normal
: 1.2.0
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-03-24 14:13 UTC by vladimir.rudoy
Modified: 2013-09-24 16:03 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch that solves the issue (910 bytes, patch)
2012-03-24 14:13 UTC, vladimir.rudoy
none Details | Review
Reworked patch (2.28 KB, patch)
2012-03-28 00:23 UTC, vladimir.rudoy
none Details | Review

Description vladimir.rudoy 2012-03-24 14:13:14 UTC
Created attachment 210515 [details] [review]
Patch that solves the issue

To reproduce in PiTiVi:
 1. insert a clip in a blank timeline
 2. remove clip from the timeline. 

After it there will be error messages:

GStreamer-CRITICAL **: Trying to dispose element typefind, but it is in PAUSED instead of the NULL state. You need to explicitly set elements to the NULL state before dropping the final reference, to allow them to clean up. This problem may also be caused by a refcounting bug in the application or some element.
GStreamer-CRITICAL **: Trying to dispose element decodebin210, but it is in PAUSED instead of the NULL state. [blah blah blah]
GStreamer-CRITICAL **: Trying to dispose element source, but it is in PAUSED instead of the NULL state.
GStreamer-CRITICAL **: Trying to dispose element internal-uridecodebin, but it is in PAUSED instead of the NULL state.
GStreamer-CRITICAL **: gst_element_set_state: assertion `GST_IS_ELEMENT (element)' failed
GStreamer-CRITICAL **: gst_bin_remove: assertion `GST_IS_ELEMENT (element)' failed
GStreamer-CRITICAL **: Trying to dispose element gnlurisource1, but it is in PAUSED (locked) instead of the NULL state.
GStreamer-CRITICAL **: Trying to dispose element typefind, but it is in PAUSED instead of the NULL state.
GStreamer-CRITICAL **: Trying to dispose element decodebin29, but it is in PAUSED instead of the NULL state.
GStreamer-CRITICAL **: Trying to dispose element source, but it is in PAUSED instead of the NULL state.
GStreamer-CRITICAL **: Trying to dispose element internal-uridecodebin, but it is in PAUSED instead of the NULL state.
GStreamer-CRITICAL **: gst_element_set_state: assertion `GST_IS_ELEMENT (element)' failed
GStreamer-CRITICAL **: gst_bin_remove: assertion `GST_IS_ELEMENT (element)' failed
GStreamer-CRITICAL **: Trying to dispose element gnlurisource0, but it is in PAUSED (locked) instead of the NULL state.
Comment 1 Thibault Saunier 2012-03-27 22:16:12 UTC
Reading the patch doesn't explain why you don't just set the gnlobject state before removing it from the composition.

You should make comments in both the commit message (which means making a proper patch using $git formatted-patch), and in the code to explain why you are doing it the way you do it.
Comment 2 vladimir.rudoy 2012-03-28 00:23:11 UTC
Created attachment 210747 [details] [review]
Reworked patch
Comment 3 Thibault Saunier 2012-03-28 01:36:52 UTC
Pushed with a few changes

Author: Volodymyr Rudyi <vladimir.rudoy@gmail.com>
Date:   Wed Mar 28 02:53:50 2012 +0300

ges-track: Set gnlobject state to NULL before disposing it

Work around a deadlock if setting state to NULL right before removing the
gnlobject from the composition.