[Webkit-unassigned] [Bug 125411] [GTK] media/video-preload.html is flakily crashing on WK2
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Dec 9 10:13:58 PST 2013
https://bugs.webkit.org/show_bug.cgi?id=125411
--- Comment #8 from Brendan Long <b.long at cablelabs.com> 2013-12-09 10:12:11 PST ---
I added some locking, copy the GstTagList before returning it, and added a bunch of ASSERTs, and still get the same messages. Even with something like this:
static void webkitTextCombinerPadGetProperty(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec)
{
WebKitTextCombinerPad* pad = WEBKIT_TEXT_COMBINER_PAD(object);
switch (propertyId) {
case PROP_PAD_TAGS: {
GST_OBJECT_LOCK(object);
ASSERT(GST_IS_TAG_LIST(pad->tags));
ASSERT(GST_OBJECT_REFCOUNT(pad->tags) > 0);
GstTagList* tags = gst_tag_list_copy(pad->tags);
ASSERT(GST_IS_TAG_LIST(tags));
ASSERT(GST_OBJECT_REFCOUNT(tags) > 0);
g_value_set_boxed(value, tags);
GST_OBJECT_UNLOCK(object);
break;
}
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec);
break;
}
}
I'll get an error message in g_object_unset in g_object_get_valist:
(DumpRenderTree:541): GStreamer-CRITICAL **: __gst_tag_list_free: assertion 'GST_IS_TAG_LIST (list)' failed
How can that possibly not be a GstTagList?
The relevant snippet in g_object_get_valist is:
object_get_property (object, pspec, &value);
G_VALUE_LCOPY (&value, var_args, 0, &error);
if (error)
{
g_warning ("%s: %s", G_STRFUNC, error);
g_free (error);
g_value_unset (&value);
break;
}
g_value_unset (&value);
And object_get_property just runs some checks and then runs:
class->get_property (object, param_id, value, pspec);
So, somehow things are going run somewhere around here.
Since nothing makes sense, maybe it's stack smashing, but I don't see anywhere where the stack could get smashed :\
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list