[gstreamer-bugs] [Bug 583255] [playbin2] deadlock when disabling visualisations

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Sep 29 03:10:56 PDT 2009


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

--- Comment #11 from Jan Schmidt <thaytan at mad.scientist.com> 2009-09-29 10:10:50 UTC ---
Making the lock recursive doesn't actually help in the larger scheme - it just
exposes a different deadlock in Totem:

Thread 4 (Thread 0xb35ffb90 (LWP 8280)):
#0  0xb801e424 in __kernel_vsyscall ()
#1  0xb7990cf9 in __lll_lock_wait () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb798c129 in _L_lock_89 () from /lib/tls/i686/cmov/libpthread.so.0
#3  0xb798ba32 in pthread_mutex_lock () from /lib/tls/i686/cmov/libpthread.so.0
#4  0x0808e1ca in got_new_video_sink_bin_element (video_sink=0x9c79540, 
    element=0x9f36bf8, data=0x9ecf008) at bacon-video-widget-gst-0.10.c:6096
#5  0xb731e8ac in g_cclosure_marshal_VOID__OBJECT () from
/usr/lib/libgobject-2.0.so.0
#6  0xb7311c7b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#7  0xb7327e57 in ?? () from /usr/lib/libgobject-2.0.so.0
#8  0xb73294b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#9  0xb7329936 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#10 0xb7ef266b in gst_bin_add_func (bin=0x9c79540, element=0x9f36bf8) at
gstbin.c:1099
#11 0xb7eee739 in gst_bin_add (bin=0x9c79540, element=0x9f36bf8) at
gstbin.c:1162
#12 0xb667446e in do_toggle_element (sink=0x9c79540) at gstgconfvideosink.c:208
#13 0xb6674988 in gst_gconf_video_sink_change_state (element=0x9c79540, 
    transition=GST_STATE_CHANGE_NULL_TO_READY) at gstgconfvideosink.c:236
#14 0xb7f05da8 in gst_element_change_state (element=0x9c79540, 
    transition=GST_STATE_CHANGE_NULL_TO_READY) at gstelement.c:2548
#15 0xb7f09464 in gst_element_set_state_func (element=0x9c79540,
state=GST_STATE_READY)
    at gstelement.c:2504
#16 0xb7f04fc2 in gst_element_set_state (element=0x9c79540,
state=GST_STATE_READY)
    at gstelement.c:2405
#17 0xb66a7ff3 in gst_play_sink_reconfigure (playsink=0x9c8a030) at
gstplaysink.c:1121
#18 0xb669dc3b in no_more_pads_cb (decodebin=0xa3c0010, group=0x9ee038c)
    at gstplaybin2.c:2279
#19 0xb731f3a4 in g_cclosure_marshal_VOID__VOID () from
/usr/lib/libgobject-2.0.so.0
#20 0xb7311c7b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#21 0xb7327e57 in ?? () from /usr/lib/libgobject-2.0.so.0
#22 0xb73294b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#23 0xb7329936 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#24 0xb7f0780a in gst_element_no_more_pads (element=0xa3c0010) at
gstelement.c:923
#25 0xb4e37691 in no_more_pads_full (element=0xb4489368, subs=164906824, 
    decoder=0xa3c0010) at gsturidecodebin.c:679
#26 0xb731f3a4 in g_cclosure_marshal_VOID__VOID () from
/usr/lib/libgobject-2.0.so.0
#27 0xb7311c7b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#28 0xb7327e57 in ?? () from /usr/lib/libgobject-2.0.so.0
#29 0xb73294b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#30 0xb7329936 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#31 0xb7f0780a in gst_element_no_more_pads (element=0xb4489368) at
gstelement.c:923
#32 0xb4e2ede0 in gst_decode_group_expose (group=0x15b) at gstdecodebin2.c:2246
#33 0xb4e2f6ca in source_pad_blocked_cb (dpad=0x9c572f0, blocked=1, unused=0x0)
    at gstdecodebin2.c:2509
#34 0xb7f1c4ea in handle_pad_block (pad=0x9c572f0) at gstpad.c:3852
---Type <return> to continue, or q <return> to quit---
#35 0xb7f287f7 in gst_pad_push_event (pad=0x9c572f0, event=0xb44b53b8) at
gstpad.c:4795
#36 0xb7f1211d in gst_proxy_pad_do_event (pad=0xb44dd028, event=0xb44b53b8)
    at gstghostpad.c:128
#37 0xb7f27f5c in gst_pad_send_event (pad=0xb44dd028, event=0xb44b53b8) at
gstpad.c:4962
#38 0xb7f286b5 in gst_pad_push_event (pad=0xb3955990, event=0xb44b53b8) at
gstpad.c:4818
#39 0xb459e7aa in theora_dec_decode_buffer (dec=0xb44a19c0, buf=<value
optimized out>)
    at theoradec.c:967
#40 0xb459edfb in theora_dec_chain (pad=0xa406330, buf=0xa41a680) at
theoradec.c:1664
#41 0xb7f207e7 in gst_pad_chain_data_unchecked (pad=0xa406330, is_buffer=1, 
    data=0xa41a680) at gstpad.c:4042
#42 0xb7f21419 in gst_pad_push_data (pad=0xa426998, is_buffer=1,
data=0xa41a680)
    at gstpad.c:4271
#43 0xb5de1c48 in gst_multi_queue_loop (pad=0xa426998) at gstmultiqueue.c:806
#44 0xb7f4cab3 in gst_task_func (task=0xa43ce60) at gsttask.c:234
#45 0xb7f4e437 in default_func (tdata=0xa3c62c8, pool=0x9a79c08) at
gsttaskpool.c:70
#46 0xb72aee26 in ?? () from /usr/lib/libglib-2.0.so.0
#47 0xb72ad7bf in ?? () from /usr/lib/libglib-2.0.so.0
#48 0xb798a4ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#49 0xb704c49e in clone () from /lib/tls/i686/cmov/libc.so.6

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