Bug 50446 - [GStreamer] critical warning in player destructor
Summary: [GStreamer] critical warning in player destructor
Status: RESOLVED INVALID
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC OS X 10.5
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-03 01:57 PST by Philippe Normand
Modified: 2011-02-14 07:31 PST (History)
2 users (show)

See Also:


Attachments
proposed patch (2.33 KB, patch)
2010-12-03 02:03 PST, Philippe Normand
no flags Details | Formatted Diff | Diff
proposed patch (2.33 KB, patch)
2010-12-03 02:07 PST, Philippe Normand
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Philippe Normand 2010-12-03 01:57:49 PST
GStreamer-CRITICAL **: 
Trying to dispose element audiotee, 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.


(gdb) bt
#0  g_logv (log_domain=<value optimized out>, log_level=<value optimized out>, 
    format=<value optimized out>, args1=0x7fffffffd330) at gmessages.c:563
#1  0x00007ffff3c7a143 in g_log (log_domain=0x7fff4c000020 "", log_level=0, 
    format=0x1 <Address 0x1 out of bounds>) at gmessages.c:577
#2  0x00007ffff434c47a in g_object_unref (_object=<value optimized out>) at gobject.c:2677
#3  0x00007ffff1ee6269 in gst_bin_remove_func (bin=0x7fffe4090620, element=0x10da9a0) at gstbin.c:1460
#4  0x00007ffff1ee5d9b in gst_bin_dispose (object=0x7fffe4090620) at gstbin.c:575
#5  0x00007ffff434c47a in g_object_unref (_object=<value optimized out>) at gobject.c:2677
#6  0x00007ffff1ee6269 in gst_bin_remove_func (bin=0xf85de0, element=0x7fffe4090620) at gstbin.c:1460
#7  0x00007ffff1ee5d9b in gst_bin_dispose (object=0xf85de0) at gstbin.c:575
#8  0x00007ffff434c47a in g_object_unref (_object=<value optimized out>) at gobject.c:2677
#9  0x00007ffff7122484 in WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer() ()

I think this is because we unref the sinks before setting playbin to NULL. I think we should also wait playbin state-change before unreffing it
Comment 1 Philippe Normand 2010-12-03 02:00:56 PST
Happens on http://agent8ball.com/ with a release build only.
Comment 2 Philippe Normand 2010-12-03 02:03:14 PST
Created attachment 75477 [details]
proposed patch
Comment 3 WebKit Review Bot 2010-12-03 02:05:37 PST
Attachment 75477 [details] did not pass style-queue:

Failed to run "['WebKitTools/Scripts/check-webkit-style', '--diff-files', u'WebCore/ChangeLog', u'WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp']" exit_code: 1
WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:332:  Use 0 instead of NULL.  [readability/null] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 4 Philippe Normand 2010-12-03 02:07:42 PST
Created attachment 75479 [details]
proposed patch