[Bug 681955] New: gst_discoverer_stream_info_list_free () causes a critical error

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Aug 15 17:00:14 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=681955
  GStreamer | gst-plugins-base | git

           Summary: gst_discoverer_stream_info_list_free () causes a
                    critical error
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Windows
            Status: UNCONFIRMED
          Severity: minor
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: lrn1986 at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


I have the following function for processing :
void
infoprocess (GstDiscovererStreamInfo * info)
{
  <non-disruptive code (only works with const data)>
  if (GST_IS_DISCOVERER_CONTAINER_INFO (info))
  {
    GstDiscovererContainerInfo *c = GST_DISCOVERER_CONTAINER_INFO (info);
    GList *children = gst_discoverer_container_info_get_streams (c);
    if (children)
    {
      GstDiscovererStreamInfo *sinfo = children->data;
      while (NULL != sinfo)
      {
        GstDiscovererStreamInfo *next;
        infoprocess (sinfo);
        next = gst_discoverer_stream_info_get_next (sinfo);
        gst_discoverer_stream_info_unref (sinfo);
        sinfo = next;
      }
      gst_discoverer_stream_info_list_free (children);
    }
  }
}

On some files this code throws a critical error:
#0  g_logv (log_domain=0x63a724ef "GLib-GObject",
log_level=G_LOG_LEVEL_CRITICAL, format=0x68680004 "%s: assertion `%s' failed",
args1=0x28b67c "*8§cЕ*§c") at /src/glib-2.33.1a/glib/gmessages.c:662
#1  0x685ffd12 in g_log (log_domain=0x63a724ef "GLib-GObject",
log_level=G_LOG_LEVEL_CRITICAL, format=0x68680004 "%s: assertion `%s' failed")
at /src/glib-2.33.1a/glib/gmessages.c:792
#2  0x685ffd43 in g_return_if_fail_warning (log_domain=0x63a724ef
"GLib-GObject", pretty_function=0x63a7382a "g_object_unref",
expression=0x63a72ac5 "G_IS_OBJECT (object)") at
/src/glib-2.33.1a/glib/gmessages.c:801
#3  0x63a4f8d3 in g_object_unref (_object=0x2d0f3e0) at
/src/glib-2.33.1a/gobject/gobject.c:2915
#4  0x6b98e66a in gst_discoverer_stream_info_list_free (infos=0x2da4890) at
gstdiscoverer-types.c:450
#5  0x6b98e6ac in gst_discoverer_container_info_finalize (object=0x2cf40f0) at
gstdiscoverer-types.c:171
#6  0x63a4fb2a in g_object_unref (_object=0x2cf40f0) at
/src/glib-2.33.1a/gobject/gobject.c:3023
#7  0x6b98de7e in gst_discoverer_info_finalize (object=0x2cf40a8) at
gstdiscoverer-types.c:361
#8  0x63a4fb2a in g_object_unref (_object=0x2cf40a8) at
/src/glib-2.33.1a/gobject/gobject.c:3023
#9  0x6b98c8df in _fu138___gst_debug_min () at gstdiscoverer.c:1221
#10 0x6b98cd33 in discoverer_bus_cb (dc=0x2cf25a8, bus=<optimized out>,
msg=<optimized out>) at gstdiscoverer.c:1506
#11 _fu142___gst_debug_min () at gstdiscoverer.c:1497
#12 0x63a49873 in g_cclosure_marshal_VOID__BOXEDv (closure=0x26a35e8,
return_value=0x0, instance=0x2cf26c8, args=0x28bbec "иҐi\002ђЅ(",
marshal_data=0x0, n_params=1, param_types=0x26a7ee8) at
/src/glib-2.33.1a/gobject/gmarshal.c:1160
#13 0x63a4643e in _g_closure_invoke_va (closure=0x26a35e8, return_value=0x0,
instance=0x2cf26c8, args=0x28bbec "иҐi\002ђЅ(", n_params=1,
param_types=0x26a7ee8) at /src/glib-2.33.1a/gobject/gclosure.c:840
#14 0x63a5d2e8 in g_signal_emit_valist (instance=0x2cf26c8, signal_id=14,
detail=410, var_args=0x28bbec "иҐi\002ђЅ(") at
/src/glib-2.33.1a/gobject/gsignal.c:3207
#15 0x63a5dc96 in g_signal_emit (instance=0x2cf26c8, signal_id=14, detail=410)
at /src/glib-2.33.1a/gobject/gsignal.c:3352
#16 0x614538b8 in gst_bus_async_signal_func (bus=0x2cf26c8, message=0x269a5e8,
data=0x0) at gstbus.c:1126
#17 0x6145460d in gst_bus_source_dispatch (source=0x2d0c778,
callback=0x6b98f8b0 <gst_bus_async_signal_func>, user_data=0x0) at gstbus.c:773
#18 0x685f7d5d in g_main_dispatch (context=0x2d21a58) at
/src/glib-2.33.1a/glib/gmain.c:2539
#19 0x685f8871 in g_main_context_dispatch (context=0x2d21a58) at
/src/glib-2.33.1a/glib/gmain.c:3075
#20 0x685f8a4c in g_main_context_iterate (context=0x2d21a58, block=1,
dispatch=1, self=0x2cf1420) at /src/glib-2.33.1a/glib/gmain.c:3146
#21 0x685f8e36 in g_main_loop_run (loop=0x2d21928) at
/src/glib-2.33.1a/glib/gmain.c:3340

Commenting out the gst_discoverer_stream_info_list_free (children); line fixes
this.

This might turn out to be just an issue with memory corruption though.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list