[Bug 685332] New: GstMeta registry race

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Oct 2 13:49:08 PDT 2012


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

           Summary: GstMeta registry race
    Classification: Platform
           Product: GStreamer
           Version: 1.0.0
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: msmith at xiph.org
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


My test transcoding app often (~50% of the time) prints this out near startup:
  (python:8136): GLib-GObject-CRITICAL **: g_pointer_type_register_static:
assertion `g_type_from_name (name) == 0' failed

I think (see stack below) this is because there's nothing preventing multiple
concurrent calls to gst_meta_register from a single site, in different threads
- i.e. like the GType registration, I think we need to use g_once_* stuff to
prevent this.

I ran into this with the video meta, but I assume this applies to all the
others. If people agree, I can prepare some patches.



With G_DEBUG=fatal_warnings, the stack looks like:

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7fffea7fc700 (LWP 8147)]
0x00007ffff5896fdb in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff5896fdb in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff58971b2 in g_log () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5b75ae2 in g_pointer_type_register_static ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff3d7e756 in gst_meta_register ()
   from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#4  0x00007ffff2fb2d8d in gst_video_meta_get_info ()
   from /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so.0
#5  0x00007ffff2fb2f3c in gst_buffer_add_video_meta_full ()
   from /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so.0
#6  0x00007ffff2fb37ec in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so.0
#7  0x00007ffff3d5c878 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#8  0x00007ffff3d5cb76 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#9  0x00007ffff3d5e012 in gst_buffer_pool_acquire_buffer ()
   from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#10 0x00007ffff38c2b5d in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0
#11 0x00007ffff38c5bab in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0
#12 0x00007ffff38c651f in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0#13 0x00007ffff3d83ed9 in
?? ()
   from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#14 0x00007ffff3b06b6d in ?? ()   from
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so
#15 0x00007ffff3db143f in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0#16 0x00007ffff58b2248
in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff58b19e5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff7bc4e9a in start_thread ()   from
/lib/x86_64-linux-gnu/libpthread.so.0
#19 0x00007ffff69b64bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#20 0x0000000000000000 in ?? ()

-- 
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