[gstreamer-bugs] [Bug 453369] Deadlock involving preroll queue filling

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Fri Jul 6 05:23:02 PDT 2007


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=453369

  GStreamer | gstreamer (core) | Ver: HEAD CVS




------- Comment #6 from Tim Angus  2007-07-06 12:23 UTC -------
I've managed to reproduce this without using fakesinks or any other weird usage
patterns. It's just using "gst-launch playbin uri=..." with the attached FLV.
It normally takes a few attempts to reproduce; usually about 5 or 6. Below is a
stacktrace at the point of locking.

Starting program:
/home/tim/sources/gstreamer/head/gstreamer/tools/.libs/lt-gst-launch-0.10
playbin uri=file:///home/tim/Desktop/caddon/caddon.flv
[Thread debugging using libthread_db enabled]
[New Thread -1212740880 (LWP 5180)]
Setting pipeline to PAUSED ...
[New Thread -1218626672 (LWP 5183)]
Pipeline is PREROLLING ...
[New Thread -1227236464 (LWP 5184)]
[New Thread -1235629168 (LWP 5185)]
[New Thread -1246651504 (LWP 5188)]
[New Thread -1256588400 (LWP 5190)]
[New Thread -1264981104 (LWP 5191)]

Program received signal SIGINT, Interrupt.
[Switching to Thread -1212740880 (LWP 5180)]
0xffffe410 in __kernel_vsyscall ()
(gdb) thread apply all bt

Thread 7 (Thread -1264981104 (LWP 5191)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e145c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/i686/cmov/libpthread.so.0
#2  0xb79cf73f in gst_base_sink_wait_preroll (sink=0x835a000) at
gstbasesink.c:1234
#3  0xb79d275e in gst_base_sink_render_object (basesink=0x835a000,
pad=0x8350b58, obj=0x83ad400) at gstbasesink.c:1328
#4  0xb79d3ec5 in gst_base_sink_queue_object_unlocked (basesink=0x835a000,
pad=0x8350b58, obj=0x83ad400, prerollable=1) at gstbasesink.c:1870
#5  0xb79d4526 in gst_base_sink_chain_unlocked (basesink=0x835a000,
pad=0x8350b58, buf=0x83ad400) at gstbasesink.c:2149
#6  0xb79d4ade in gst_base_sink_chain (pad=0x8350b58, buf=0x83ad400) at
gstbasesink.c:2183
#7  0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x8350b58, buffer=0x83ad400) at
gstpad.c:3453
#8  0xb7f626bb in gst_pad_push (pad=0x8280998, buffer=0x83ad400) at
gstpad.c:3621
#9  0xb7f535da in gst_proxy_pad_do_chain (pad=0x82801c0, buffer=0x83ad400) at
gstghostpad.c:191
#10 0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x82801c0, buffer=0x83ad400) at
gstpad.c:3453
#11 0xb7f626bb in gst_pad_push (pad=0x8350918, buffer=0x83ad400) at
gstpad.c:3621
#12 0xb79e06e5 in gst_base_transform_chain (pad=0x8350858, buffer=0x83ad400) at
gstbasetransform.c:1605
#13 0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x8350858, buffer=0x83ad400) at
gstpad.c:3453
#14 0xb7f626bb in gst_pad_push (pad=0x8283ed0, buffer=0x83ad400) at
gstpad.c:3621
#15 0xb79e06e5 in gst_base_transform_chain (pad=0x8286ef8, buffer=0x83ad400) at
gstbasetransform.c:1605
#16 0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x8286ef8, buffer=0x83ad400) at
gstpad.c:3453
#17 0xb7f626bb in gst_pad_push (pad=0x8350a98, buffer=0x83ad400) at
gstpad.c:3621
#18 0xb79e06e5 in gst_base_transform_chain (pad=0x83509d8, buffer=0x83ad400) at
gstbasetransform.c:1605
#19 0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x83509d8, buffer=0x83ad400) at
gstpad.c:3453
#20 0xb7f626bb in gst_pad_push (pad=0x8280a60, buffer=0x83ad400) at
gstpad.c:3621
#21 0xb7f535da in gst_proxy_pad_do_chain (pad=0x82802a0, buffer=0x83ad400) at
gstghostpad.c:191
#22 0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x82802a0, buffer=0x83ad400) at
gstpad.c:3453
#23 0xb7f626bb in gst_pad_push (pad=0x8283c90, buffer=0x83ad400) at
gstpad.c:3621
#24 0xb7a051a2 in gst_queue_loop (pad=0x8283c90) at gstqueue.c:932
#25 0xb7f7c466 in gst_task_func (task=0x81e9c08, tclass=0x80ac350) at
gsttask.c:192
#26 0xb7e6f4d8 in g_thread_pool_thread_proxy (data=0x80ac3e0) at
gthreadpool.c:265
#27 0xb7e6db7f in g_thread_create_proxy (data=0x8365a60) at gthread.c:591
#28 0xb7e1031b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#29 0xb7d9957e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 6 (Thread -1256588400 (LWP 5190)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e17986 in ?? () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb7e6fd72 in IA__g_usleep (microseconds=50000) at gtimer.c:170
#3  0xb52e4a56 in gst_xvimagesink_event_thread (xvimagesink=0x835a000) at
xvimagesink.c:1515
#4  0xb7e6db7f in g_thread_create_proxy (data=0x80ea738) at gthread.c:591
#5  0xb7e1031b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#6  0xb7d9957e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 5 (Thread -1246651504 (LWP 5188)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e16dae in __lll_mutex_lock_wait () from
/lib/tls/i686/cmov/libpthread.so.0
#2  0xb7e12aac in _L_mutex_lock_51 () from /lib/tls/i686/cmov/libpthread.so.0
#3  0xb7e1249d in pthread_mutex_lock () from /lib/tls/i686/cmov/libpthread.so.0
#4  0xb7ee8dd5 in IA__g_signal_emit_valist (instance=0x810d7e0, signal_id=24,
detail=0, var_args=0xb5b1924c "�\a") at gsignal.c:2129
#5  0xb7ee97e9 in IA__g_signal_emit (instance=0x810d7e0, signal_id=24,
detail=0) at gsignal.c:2243
#6  0xb7a0505f in gst_queue_loop (pad=0x81ecda0) at gstqueue.c:978
#7  0xb7f7c466 in gst_task_func (task=0x81e9cf8, tclass=0x80ac350) at
gsttask.c:192
#8  0xb7e6f4d8 in g_thread_pool_thread_proxy (data=0x80ac3e0) at
gthreadpool.c:265
#9  0xb7e6db7f in g_thread_create_proxy (data=0x8295e50) at gthread.c:591
#10 0xb7e1031b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#11 0xb7d9957e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 4 (Thread -1235629168 (LWP 5185)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e145c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/i686/cmov/libpthread.so.0
#2  0xb7a064df in gst_queue_chain (pad=0x8283bd0, buffer=0x82d1e70) at
gstqueue.c:876
#3  0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x8283bd0, buffer=0x82d1e70) at
gstpad.c:3453
#4  0xb7f626bb in gst_pad_push (pad=0x8283b10, buffer=0x82d1e70) at
gstpad.c:3621
#5  0xb7a546ec in gst_stream_selector_chain (pad=0x8283d50, buf=0x82d1e70) at
gststreamselector.c:408
#6  0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x8283d50, buffer=0x82d1e70) at
gstpad.c:3453
#7  0xb7f626bb in gst_pad_push (pad=0x8120f00, buffer=0x82d1e70) at
gstpad.c:3621
#8  0xb7f535da in gst_proxy_pad_do_chain (pad=0x8121718, buffer=0x82d1e70) at
gstghostpad.c:191
#9  0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x8121718, buffer=0x82d1e70) at
gstpad.c:3453
#10 0xb7f626bb in gst_pad_push (pad=0x8283a50, buffer=0x82d1e70) at
gstpad.c:3621
#11 0xb75ef821 in gst_ffmpegdec_frame (ffmpegdec=0x8285010, data=0x82fc830 "",
size=3569, got_data=0xb659c16c, in_timestamp=3040000000, in_duration=0, 
    ret=0xb659c168) at gstffmpegdec.c:1727
#12 0xb75f2a94 in gst_ffmpegdec_chain (pad=0x8283990, inbuf=0x82f3ea0) at
gstffmpegdec.c:2064
#13 0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x8283990, buffer=0x82f3ea0) at
gstpad.c:3453
#14 0xb7f626bb in gst_pad_push (pad=0x82838d0, buffer=0x82f3ea0) at
gstpad.c:3621
#15 0xb7a051a2 in gst_queue_loop (pad=0x82838d0) at gstqueue.c:932
#16 0xb7f7c466 in gst_task_func (task=0x81e9ca8, tclass=0x80ac350) at
gsttask.c:192
#17 0xb7e6f4d8 in g_thread_pool_thread_proxy (data=0x80ac3e0) at
gthreadpool.c:265
#18 0xb7e6db7f in g_thread_create_proxy (data=0x81dd0a0) at gthread.c:591
#19 0xb7e1031b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#20 0xb7d9957e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 3 (Thread -1227236464 (LWP 5184)):
#0  0xb7ee7cba in signal_emit_unlocked_R (node=0x8114248, detail=0,
instance=0x810d650, emission_return=0x0, instance_and_params=0xb6d9d00c)
    at gsignal.c:1188
#1  0xb7ee9627 in IA__g_signal_emit_valist (instance=0x810d650, signal_id=24,
detail=0, var_args=0xb6d9d24c "�\a") at gsignal.c:2199
#2  0xb7ee97e9 in IA__g_signal_emit (instance=0x810d650, signal_id=24,
detail=0) at gsignal.c:2243
#3  0xb7a0505f in gst_queue_loop (pad=0x81ec860) at gstqueue.c:978
#4  0xb7f7c466 in gst_task_func (task=0x81e9c58, tclass=0x80ac350) at
gsttask.c:192
#5  0xb7e6f4d8 in g_thread_pool_thread_proxy (data=0x80ac3e0) at
gthreadpool.c:265
#6  0xb7e6db7f in g_thread_create_proxy (data=0x82f9ca8) at gthread.c:591
#7  0xb7e1031b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#8  0xb7d9957e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 2 (Thread -1218626672 (LWP 5183)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e145c6 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/i686/cmov/libpthread.so.0
#2  0xb7a064df in gst_queue_chain (pad=0x8283810, buffer=0x82d5998) at
gstqueue.c:876
#3  0xb7f61fd9 in gst_pad_chain_unchecked (pad=0x8283810, buffer=0x82d5998) at
gstpad.c:3453
#4  0xb7f626bb in gst_pad_push (pad=0x81ecf20, buffer=0x82d5998) at
gstpad.c:3621
#5  0xb75fc7ec in gst_ffmpegdemux_loop (pad=0x811a410) at gstffmpegdemux.c:1248
#6  0xb7f7c466 in gst_task_func (task=0x812c9e0, tclass=0x80ac350) at
gsttask.c:192
#7  0xb7e6f4d8 in g_thread_pool_thread_proxy (data=0x80ac3e0) at
gthreadpool.c:265
#8  0xb7e6db7f in g_thread_create_proxy (data=0x80ac278) at gthread.c:591
#9  0xb7e1031b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#10 0xb7d9957e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread -1212740880 (LWP 5180)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7d8f893 in poll () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7e52e03 in g_main_context_iterate (context=0x810c530, block=1,
dispatch=1, self=0x804e070) at gmain.c:2979
#3  0xb7e53179 in IA__g_main_loop_run (loop=0x82e07e0) at gmain.c:2881
#4  0xb7f40109 in gst_bus_poll (bus=0x810c860, events=GST_MESSAGE_ANY,
timeout=-1) at gstbus.c:935
#5  0x0804a2ef in event_loop (pipeline=0x810d010, blocking=1,
target_state=GST_STATE_PAUSED) at gst-launch.c:381
#6  0x0804b521 in main (argc=3, argv=0xbff970c4) at gst-launch.c:706
(gdb) 


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=453369.




More information about the Gstreamer-bugs mailing list