Bug 107374 - [gstreamer] assertion in g_object_unref from _WebKitWebAudioSourcePrivate destructor
Summary: [gstreamer] assertion in g_object_unref from _WebKitWebAudioSourcePrivate de...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Dumez
URL:
Keywords:
Depends on:
Blocks: 106551
  Show dependency treegraph
 
Reported: 2013-01-19 10:47 PST by Chris Dumez
Modified: 2013-01-20 04:54 PST (History)
7 users (show)

See Also:


Attachments
Patch (2.05 KB, patch)
2013-01-19 10:53 PST, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (1.92 KB, patch)
2013-01-20 03:17 PST, Chris Dumez
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Dumez 2013-01-19 10:47:44 PST
We get the following assertion when running the webaudio tests in _WebKitWebAudioSourcePrivate destructor:

crash log for WebProcess (pid <unknown>):
STDOUT: <empty>
STDERR:
STDERR: (WebProcess:17295): GLib-GObject-CRITICAL **: g_object_unref: assertion `object->ref_count > 0' failed
STDERR: 1   0x7f437a569903
STDERR: 2   0x7f437cd134a0
STDERR: 3   0x7f4375ba5d18 g_logv
STDERR: 4   0x7f4375ba5e3e g_log
STDERR: 5   0x7f4375ba5e7f g_return_if_fail_warning
STDERR: 6   0x7f437597e42d g_object_unref
STDERR: 7   0x7f4372f58711
STDERR: 8   0x7f437597e65a g_object_unref
STDERR: 9   0x7f4372edb16b gst_object_unref
STDERR: 10  0x7f437a46ab19 void WTF::derefGPtr<_GstTask>(_GstTask*)
STDERR: 11  0x7f437a43ced2 WTF::GRefPtr<_GstTask>::~GRefPtr()
STDERR: 12  0x7f437a43ce70 _WebKitWebAudioSourcePrivate::~_WebKitWebAudioSourcePrivate()
STDERR: 13  0x7f437a43c18f
STDERR: 14  0x7f437597e65a g_object_unref
STDERR: 15  0x7f4372edb16b gst_object_unref
STDERR: 16  0x7f4372ee218f
STDERR: 17  0x7f4372ee23d5 gst_bin_remove
STDERR: 18  0x7f4372edfa72
STDERR: 19  0x7f4372f2bc47
STDERR: 20  0x7f437597e566 g_object_unref
STDERR: 21  0x7f4372edb16b gst_object_unref
STDERR: 22  0x7f437a438f57 WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer()
STDERR: 23  0x7f437a438fae WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer()
STDERR: 24  0x7f437901ad55 void WTF::deleteOwnedPtr<WebCore::AudioDestination>(WebCore::AudioDestination*)
STDERR: 25  0x7f437901ac1f WTF::OwnPtr<WebCore::AudioDestination>::~OwnPtr()
STDERR: 26  0x7f437901a86a WebCore::DefaultAudioDestinationNode::~DefaultAudioDestinationNode()
STDERR: 27  0x7f437901a8b6 WebCore::DefaultAudioDestinationNode::~DefaultAudioDestinationNode()
STDERR: 28  0x7f4378ff9ab1 WebCore::AudioContext::deleteMarkedNodes()
STDERR: 29  0x7f4379009480 WebCore::AudioNode::deref(WebCore::AudioNode::RefType)
STDERR: 30  0x7f4378ffd250 void WTF::derefIfNotNull<WebCore::AudioDestinationNode>(WebCore::AudioDestinationNode*)
STDERR: 31  0x7f4378ffbada WTF::RefPtr<WebCore::AudioDestinationNode>::clear()
STDERR: LEAK: 1 WebPage
STDERR: LEAK: 1 WebFrame
STDERR: LEAK: 3 RenderObject
STDERR: LEAK: 1 Page
STDERR: LEAK: 1 Frame
STDERR: LEAK: 5 CachedResource
STDERR: LEAK: 109 WebCoreNode
STDERR: LEAK: 1 WebContext
Comment 1 Chris Dumez 2013-01-19 10:53:56 PST
Created attachment 183628 [details]
Patch
Comment 2 Philippe Normand 2013-01-20 01:51:08 PST
Comment on attachment 183628 [details]
Patch

Maybe it'd be simpler to set a NULL GDestroyNotify callback instead? Thanks for taking care of this issue.
Comment 3 Chris Dumez 2013-01-20 03:17:10 PST
Created attachment 183662 [details]
Patch

Take Philippe's comment into consideration. It is a bit simpler indeed.
Comment 4 WebKit Review Bot 2013-01-20 03:37:47 PST
Comment on attachment 183662 [details]
Patch

Clearing flags on attachment: 183662

Committed r140272: <http://trac.webkit.org/changeset/140272>
Comment 5 WebKit Review Bot 2013-01-20 03:37:51 PST
All reviewed patches have been landed.  Closing bug.