[Bug 656825] New: deadlock in gst_index_path_resolver

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Aug 18 08:14:57 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=656825
  GStreamer | gstreamer (core) | git

           Summary: deadlock in gst_index_path_resolver
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: philipj at opera.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Playing
http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/content/counting-captioned.mov
using decodebin2 with an indexer set, I get the deadlock with the backtrace at
the end of this comment.

AFAICT, the object lock is not recursive, and this is what causes the deadlock
to happen. The lock is held in gst_bin_add_func and is taken again in
gst_object_get_parent as gst_object_get_path_string traverses the parents. My
best guess is that something is wrong in gst_qtdemux_set_index since the same
problem hasn't occured with matroskademux.

#0  0x00007ffff6ab17c4 in __lll_lock_wait () from
/lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffff6aac5b4 in _L_lock_944 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007ffff6aac3ca in pthread_mutex_lock () from
/lib/x86_64-linux-gnu/libpthread.so.0
#3  0x00007fffed8a808a in gst_object_get_parent (object=0x5ca24e0) at
gstobject.c:893
#4  0x00007fffed8a88fe in gst_object_get_path_string (object=0x5ca24e0) at
gstobject.c:1143
#5  0x00007fffed8d7613 in gst_index_path_resolver (index=0x5cac1a0,
writer=0x5d268d0, writer_string=0x7fffe270ae48, data=0x0) at gstindex.c:650
#6  0x00007fffed8d7968 in gst_index_get_writer_id (index=0x5cac1a0,
writer=0x5d268d0, id=0x5d26b30) at gstindex.c:730
#7  0x00007fffeb910a64 in gst_qtdemux_set_index (element=0x5d268d0,
index=0x5cac1a0) at qtdemux.c:1750
#8  0x00007fffed8c52c5 in gst_element_set_index (element=0x5d268d0,
index=0x5cac1a0) at gstelement.c:657
#9  0x00007fffed8aafe2 in gst_bin_add_func (bin=0x5ca24e0, element=0x5d268d0)
at gstbin.c:1120
#10 0x00007fffed8ab4cc in gst_bin_add (bin=0x5ca24e0, element=0x5d268d0) at
gstbin.c:1244
#11 0x00007fffec1f8aec in connect_pad (dbin=0x5ca24e0, src=0x5ce4050,
dpad=0x53ea050, pad=0x5d109c0, caps=0x5b93280, factories=0x54d4ee0,
chain=0x5cfce70) at gstdecodebin2.c:1769
#12 0x00007fffec1f7602 in analyze_new_pad (dbin=0x5ca24e0, src=0x5ce4050,
pad=0x5d109c0, caps=0x5b93280, chain=0x5cfce70) at gstdecodebin2.c:1521
#13 0x00007fffec1fa583 in type_found (typefind=0x5ce4050, probability=100,
caps=0x5b93280, decode_bin=0x5ca24e0) at gstdecodebin2.c:2131
#14 0x00007fffed940046 in gst_marshal_VOID__UINT_BOXED (closure=0x7fffdca79e60,
return_value=0x0, n_param_values=3, param_values=0x7fffe40a7f70,
invocation_hint=0x7fffe270b420, marshal_data=0x0) at gstmarshal.c:509
#15 0x00007fffedda081c in g_closure_invoke () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007fffeddb2019 in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007fffeddbb258 in g_signal_emit_valist () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007fffeddbb41f in g_signal_emit () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007fffebdb4657 in gst_type_find_element_chain_do_typefinding
(typefind=0x5ce4050) at gsttypefindelement.c:845
#20 0x00007fffebdb403c in gst_type_find_element_chain (pad=0x5ca77a0,
buffer=0x5c28560) at gsttypefindelement.c:780
#21 0x00007fffed8ef0e2 in gst_pad_chain_data_unchecked (pad=0x5ca77a0,
is_buffer=1, data=0x5c28560, cache=0x7fffe270b930) at gstpad.c:4248
#22 0x00007fffed8efd6c in gst_pad_push_data (pad=0x5cab3b0, is_buffer=1,
data=0x5c28560, cache=0x7fffe270b930) at gstpad.c:4480
#23 0x00007fffed8f071a in gst_pad_push (pad=0x5cab3b0, buffer=0x5c28560) at
gstpad.c:4705
#24 0x00007fffed8d24c0 in gst_proxy_pad_chain_default (pad=0x5caa380,
buffer=0x5c28560) at gstghostpad.c:272
#25 0x00007fffed8ef0e2 in gst_pad_chain_data_unchecked (pad=0x5caa380,
is_buffer=1, data=0x5c28560, cache=0x7fffe270bb80) at gstpad.c:4248
#26 0x00007fffed8efd6c in gst_pad_push_data (pad=0x5d10b40, is_buffer=1,
data=0x5c28560, cache=0x7fffe270bb80) at gstpad.c:4480
#27 0x00007fffed8f071a in gst_pad_push (pad=0x5d10b40, buffer=0x5c28560) at
gstpad.c:4705
#28 0x00007fffecee0e1c in gst_base_src_loop (pad=0x5d10b40) at
gstbasesrc.c:2552
#29 0x00007fffed9214d3 in gst_task_func (task=0x5d11100) at gsttask.c:318
#30 0x00007fffed922626 in default_func (tdata=0x5bed070, pool=0x541f000) at
gsttaskpool.c:70
#31 0x00007fffee42db16 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fffee42b3e4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff6aa9d8c in start_thread () from
/lib/x86_64-linux-gnu/libpthread.so.0
#34 0x00007ffff606604d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#35 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