[Bug 727102] rtsp-media: deadlock with dynamic pipelines when preroll fails

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Mar 26 09:50:53 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=727102
  GStreamer | gst-rtsp-server | git

--- Comment #1 from Aleix Conchillo Flaqué <aleix at oblong.com> 2014-03-26 17:16:26 UTC ---
The old backtrace had some changes so it would be hard for you to get to the
right lines.

The following backtrace has been obtained with commit

  dffdbbf0906201ec6d6711d1e80e6245182d517c

-----

Thread 7 (Thread 0x7fdcc8e22700 (LWP 11989)):
#0  0x00007fdcd1a10a43 in __GI___poll (fds=<optimized out>, nfds=<optimized
out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fdccf0e9a75 in g_main_context_poll (n_fds=2, fds=0x7fdcc40091c0,
timeout=1998, context=0x7fdcc4002ea0, priority=<optimized out>) at gmain.c:4005
#2  g_main_context_iterate (context=0x7fdcc4002ea0, block=<optimized out>,
dispatch=1, self=<optimized out>) at gmain.c:3706
#3  0x00007fdccf0ea00a in g_main_context_iterate (dispatch=1, block=1,
context=0x7fdcc4002ea0, self=<optimized out>) at gmain.c:3678
#4  g_main_loop_run (loop=0x7fdcc402c3a0) at gmain.c:3905
#5  0x00007fdcd247136d in thread_func (arg=0x11bf560) at RTSPViddleServer.C:360
#6  0x00007fdcd1cefe9a in start_thread (arg=0x7fdcc8e22700) at
pthread_create.c:308
#7  0x00007fdcd1a1c3fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#8  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fdcc3fff700 (LWP 11994)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:132
#1  0x00007fdcd1cf2080 in _L_lock_903 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007fdcd1cf1f19 in __pthread_mutex_lock (mutex=0x7fdcb80626f0) at
pthread_mutex_lock.c:82
#3  0x00007fdccfc2f458 in post_activate (new_mode=<optimized out>,
pad=0x7fdcbc011060) at gstpad.c:909
#4  gst_pad_activate_mode (pad=0x7fdcbc011060, mode=GST_PAD_MODE_PUSH,
active=0) at gstpad.c:1093
#5  0x00007fdccfc2fce0 in gst_pad_set_active (pad=0x7fdcbc011060, active=0) at
gstpad.c:972
#6  0x00007fdccfc114d4 in activate_pads (vpad=<optimized out>,
ret=0x7fdcc3ffdc80, active=0x7fdcc3ffdc5c) at gstelement.c:2687
#7  0x00007fdccfc2173c in gst_iterator_fold (it=0x7fdcbc0491f0,
func=0x7fdccfc114b0 <activate_pads>, ret=0x7fdcc3ffdc80,
user_data=0x7fdcc3ffdc5c) at gstiterator.c:614
#8  0x00007fdccfc1366d in iterator_activate_fold_with_resync
(user_data=0x7fdcc3ffdc5c, iter=0x7fdcbc0491f0, func=<optimized out>) at
gstelement.c:2707
#9  gst_element_pads_activate (element=0x7fdcbc032580, active=0) at
gstelement.c:2751
#10 0x00007fdccfc139c5 in gst_element_change_state_func
(element=0x7fdcbc032580, transition=<optimized out>) at gstelement.c:2815
#11 0x00007fdcc2bdf79c in gst_type_find_element_change_state
(element=0x7fdcbc032580, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at
gsttypefindelement.c:1231
#12 0x00007fdccfc1574c in gst_element_change_state (element=0x7fdcbc032580,
transition=<optimized out>) at gstelement.c:2602
#13 0x00007fdccfc160cf in gst_element_set_state_func (element=0x7fdcbc032580,
state=GST_STATE_READY) at gstelement.c:2558
#14 0x00007fdccfbf97de in gst_bin_element_set_state (next=GST_STATE_READY,
current=GST_STATE_PAUSED, start_time=0, base_time=670845715810963,
element=0x7fdcbc032580, bin=0x7fdcbc027180) at gstbin.c:2325
#15 gst_bin_change_state_func (element=0x7fdcbc027180,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:2648
#16 0x00007fdcc2167feb in gst_decode_bin_change_state (element=0x7fdcbc027180,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstdecodebin2.c:4532
#17 0x00007fdccfc1574c in gst_element_change_state (element=0x7fdcbc027180,
transition=<optimized out>) at gstelement.c:2602
#18 0x00007fdccfc160cf in gst_element_set_state_func (element=0x7fdcbc027180,
state=GST_STATE_READY) at gstelement.c:2558
#19 0x00007fdccfbf97de in gst_bin_element_set_state (next=GST_STATE_READY,
current=GST_STATE_PAUSED, start_time=0, base_time=670845715810963,
element=0x7fdcbc027180, bin=0x7fdcbc006730) at gstbin.c:2325
#20 gst_bin_change_state_func (element=0x7fdcbc006730,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:2648
#21 0x00007fdccfc1574c in gst_element_change_state (element=0x7fdcbc006730,
transition=<optimized out>) at gstelement.c:2602
#22 0x00007fdccfc160cf in gst_element_set_state_func (element=0x7fdcbc006730,
state=GST_STATE_READY) at gstelement.c:2558
#23 0x00007fdccfbf97de in gst_bin_element_set_state (next=GST_STATE_READY,
current=GST_STATE_PAUSED, start_time=0, base_time=670845715810963,
element=0x7fdcbc006730, bin=0x7fdcbc0063f0) at gstbin.c:2325
#24 gst_bin_change_state_func (element=0x7fdcbc0063f0,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:2648
#25 0x00007fdccfc1574c in gst_element_change_state (element=0x7fdcbc0063f0,
transition=<optimized out>) at gstelement.c:2602
#26 0x00007fdccfc160cf in gst_element_set_state_func (element=0x7fdcbc0063f0,
state=GST_STATE_READY) at gstelement.c:2558
#27 0x00007fdccfbf97de in gst_bin_element_set_state (next=GST_STATE_READY,
current=GST_STATE_PAUSED, start_time=0, base_time=670845715810963,
element=0x7fdcbc0063f0, bin=0x7fdcbc0385a0) at gstbin.c:2325
#28 gst_bin_change_state_func (element=0x7fdcbc0385a0,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:2648
#29 0x00007fdccfc354c1 in gst_pipeline_change_state (element=0x7fdcbc0385a0,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstpipeline.c:471
#30 0x00007fdccfc1574c in gst_element_change_state (element=0x7fdcbc0385a0,
transition=<optimized out>) at gstelement.c:2602
#31 0x00007fdccfc160cf in gst_element_set_state_func (element=0x7fdcbc0385a0,
state=GST_STATE_NULL) at gstelement.c:2558
#32 0x00007fdcd00fdd55 in finish_unprepare (media=0x7fdcbc032530) at
rtsp-media.c:2281
#33 0x00007fdcd0102155 in gst_rtsp_media_unprepare (media=0x7fdcbc032530) at
rtsp-media.c:2397
#34 0x00007fdcd010244b in gst_rtsp_media_prepare (media=0x7fdcbc032530,
thread=0x7fdcbc03e880) at rtsp-media.c:2266
#35 0x00007fdcd0110f7d in find_media (client=0x7fdcc404db60,
ctx=0x7fdcc3ffe9a0, path=0x7fdcbc005730 "/thumbnail/5Wi8ZkKVhRZsAhT/wbipcam",
matched=<optimized out>) at rtsp-client.c:541
#36 0x00007fdcd0111d21 in handle_describe_request (ctx=0x7fdcc3ffe9a0,
client=0x7fdcc404db60) at rtsp-client.c:1750
#37 handle_request (client=0x7fdcc404db60, request=<optimized out>) at
rtsp-client.c:2001
#38 0x00007fdcd0114c6b in gst_rtsp_client_handle_message
(client=0x7fdcc404db60, message=0x7fdcc4059a88) at rtsp-client.c:2567
#39 0x00007fdccfedf9f1 in gst_rtsp_source_dispatch_read (stream=<optimized
out>, watch=0x7fdcc4058a00) at gstrtspconnection.c:3180
#40 0x00007fdcc8411e64 in gnutls_source_dispatch (source=<optimized out>,
callback=<optimized out>, user_data=<optimized out>) at
gtlsconnection-gnutls.c:913
#41 0x00007fdccf0e97a9 in g_main_dispatch (context=0x7fdcc404ecc0) at
gmain.c:3066
#42 g_main_context_dispatch (context=0x7fdcc404ecc0) at gmain.c:3640
#43 0x00007fdccf0e9ab8 in g_main_context_iterate (context=0x7fdcc404ecc0,
block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3711
#44 0x00007fdccf0ea00a in g_main_context_iterate (dispatch=1, block=1,
context=0x7fdcc404ecc0, self=<optimized out>) at gmain.c:3678
#45 g_main_loop_run (loop=0x7fdcc404e0d0) at gmain.c:3905
#46 0x00007fdcd00fc278 in do_loop (thread=0x7fdcc40478a0) at
rtsp-thread-pool.c:329
#47 0x00007fdccf111b06 in g_thread_pool_thread_proxy (data=<optimized out>) at
gthreadpool.c:309
#48 0x00007fdccf110ff5 in g_thread_proxy (data=0x7fdcc4001800) at gthread.c:798
#49 0x00007fdcd1cefe9a in start_thread (arg=0x7fdcc3fff700) at
pthread_create.c:308
#50 0x00007fdcd1a1c3fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#51 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fdcc2bab700 (LWP 11996)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fdccf130f2f in g_cond_wait (cond=0x7fdcbc02ce30, mutex=<optimized
out>) at gthread-posix.c:753
#2  0x00007fdccfc5c838 in gst_task_func (task=0x7fdcbc02cdd0) at gsttask.c:304
#3  0x00007fdccf111b06 in g_thread_pool_thread_proxy (data=<optimized out>) at
gthreadpool.c:309
#4  0x00007fdccf110ff5 in g_thread_proxy (data=0x7fdcbc003940) at gthread.c:798
#5  0x00007fdcd1cefe9a in start_thread (arg=0x7fdcc2bab700) at
pthread_create.c:308
#6  0x00007fdcd1a1c3fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fdcc1aa5700 (LWP 11997)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:132
#1  0x00007fdcd1cf2080 in _L_lock_903 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007fdcd1cf1f19 in __pthread_mutex_lock (mutex=0x7fdcbc0220a0) at
pthread_mutex_lock.c:82
#3  0x00007fdcd00fd6c1 in bus_message (bus=<optimized out>,
message=0x7fdc7c0020a0, media=0x7fdcbc032530) at rtsp-media.c:1858
#4  0x00007fdccfc01894 in gst_bus_source_dispatch (source=0x7fdcbc005c90,
callback=0x7fdcd00fd690 <bus_message>, user_data=0x7fdcbc032530) at
gstbus.c:769
#5  0x00007fdccf0e97a9 in g_main_dispatch (context=0x7fdcbc013d10) at
gmain.c:3066
#6  g_main_context_dispatch (context=0x7fdcbc013d10) at gmain.c:3640
---Type <return> to continue, or q <return> to quit---
#7  0x00007fdccf0e9ab8 in g_main_context_iterate (context=0x7fdcbc013d10,
block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3711
#8  0x00007fdccf0ea00a in g_main_context_iterate (dispatch=1, block=1,
context=0x7fdcbc013d10, self=<optimized out>) at gmain.c:3678
#9  g_main_loop_run (loop=0x7fdcbc00c460) at gmain.c:3905
#10 0x00007fdcd00fc278 in do_loop (thread=0x7fdcbc03e880) at
rtsp-thread-pool.c:329
#11 0x00007fdccf111b06 in g_thread_pool_thread_proxy (data=<optimized out>) at
gthreadpool.c:309
#12 0x00007fdccf110ff5 in g_thread_proxy (data=0x7fdcbc036940) at gthread.c:798
#13 0x00007fdcd1cefe9a in start_thread (arg=0x7fdcc1aa5700) at
pthread_create.c:308
#14 0x00007fdcd1a1c3fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#15 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fdcb0dc7700 (LWP 12005)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fdccf130f2f in g_cond_wait (cond=0x7fdcbc02cad0, mutex=<optimized
out>) at gthread-posix.c:753
#2  0x00007fdccfc5c838 in gst_task_func (task=0x7fdcbc02ca70) at gsttask.c:304
#3  0x00007fdccf111b06 in g_thread_pool_thread_proxy (data=<optimized out>) at
gthreadpool.c:309
#4  0x00007fdccf110ff5 in g_thread_proxy (data=0x7fdcb8037540) at gthread.c:798
#5  0x00007fdcd1cefe9a in start_thread (arg=0x7fdcb0dc7700) at
pthread_create.c:308
#6  0x00007fdcd1a1c3fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fdc927fc700 (LWP 12007)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:132
#1  0x00007fdcd1cf2080 in _L_lock_903 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007fdcd1cf1f19 in __pthread_mutex_lock (mutex=0x7fdcbc0220a0) at
pthread_mutex_lock.c:82
#3  0x00007fdcd0100a44 in pad_added_cb (element=<optimized out>, pad=<optimized
out>, media=0x7fdcbc032530) at rtsp-media.c:1927
#4  0x00007fdccf3e5b5d in g_cclosure_marshal_VOID__OBJECTv
(closure=0x7fdcac003b80, return_value=<optimized out>, instance=0x7fdcbc006730,
args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, 
    param_types=0x11aeeb0) at gmarshal.c:1312
#5  0x00007fdccf3e25da in _g_closure_invoke_va (closure=0x7fdcac003b80,
return_value=0x0, instance=0x7fdcbc006730, args=0x7fdc927fa388, n_params=1,
param_types=<optimized out>) at gclosure.c:840
#6  0x00007fdccf3fdbfb in g_signal_emit_valist (instance=<optimized out>,
signal_id=<optimized out>, detail=0, var_args=<optimized out>) at
gsignal.c:3238
#7  0x00007fdccf3fe452 in g_signal_emit (instance=<optimized out>,
signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
#8  0x00007fdccfc12590 in gst_element_add_pad (element=0x7fdcbc006730,
pad=0x7fdcbc027400) at gstelement.c:694
#9  0x00007fdcd2457e84 in rtsp_viddle_factory_payload_add_encoder
(decoder=<optimized out>, pad=0x7fdcb8006ab0, pay=0x7fdcbc006730) at
rtsp-viddle-factory-payload.C:406
#10 0x00007fdccf3e5b5d in g_cclosure_marshal_VOID__OBJECTv
(closure=0x7fdcbc00bd60, return_value=<optimized out>, instance=0x7fdcbc027180,
args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, 
    param_types=0x11aeeb0) at gmarshal.c:1312
#11 0x00007fdccf3e25da in _g_closure_invoke_va (closure=0x7fdcbc00bd60,
return_value=0x0, instance=0x7fdcbc027180, args=0x7fdc927fb058, n_params=1,
param_types=<optimized out>) at gclosure.c:840
#12 0x00007fdccf3fdbfb in g_signal_emit_valist (instance=<optimized out>,
signal_id=<optimized out>, detail=0, var_args=<optimized out>) at
gsignal.c:3238
#13 0x00007fdccf3fe452 in g_signal_emit (instance=<optimized out>,
signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
#14 0x00007fdccfc12590 in gst_element_add_pad (element=0x7fdcbc027180,
pad=0x7fdcb8006ab0) at gstelement.c:694
#15 0x00007fdcc2165c90 in gst_decode_bin_expose (dbin=0x7fdcbc027180) at
gstdecodebin2.c:4019
#16 0x00007fdcc2166b60 in source_pad_blocked_cb (pad=0x7fdcbc011290,
info=<optimized out>, user_data=<optimized out>) at gstdecodebin2.c:4197
#17 0x00007fdccfc294d8 in probe_hook_marshal (hook=0x7fdc6c002280,
data=0x7fdc927fb310) at gstpad.c:3110
#18 0x00007fdccf0d8fcf in g_hook_list_marshal (hook_list=0x7fdcbc011328,
may_recurse=1, marshaller=0x7fdccfc29330 <probe_hook_marshal>,
data=0x7fdc927fb310) at ghook.c:676
#19 0x00007fdccfbeb79c in do_probe_callbacks (pad=0x7fdcbc011290,
info=<optimized out>, defaultval=GST_FLOW_OK) at gstpad.c:3204
#20 0x00007fdccfc2a770 in gst_pad_push_event_unchecked (pad=0x7fdcbc011290,
event=0x7fdc6c0040c0, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4715
#21 0x00007fdccfc2aa18 in push_sticky (pad=0x7fdcbc011290, ev=0x7fdc927fb4a0,
user_data=0x7fdc927fb510) at gstpad.c:3381
#22 0x00007fdccfc28082 in events_foreach (pad=0x7fdcbc011290,
func=0x7fdccfc2a8c0 <push_sticky>, user_data=0x7fdc927fb510) at gstpad.c:533
#23 0x00007fdccfc32b58 in check_sticky (event=0x7fdcc4003c00,
pad=0x7fdcbc011290) at gstpad.c:3437
#24 gst_pad_push_event (pad=0x7fdcbc011290, event=0x7fdcc4003c00) at
gstpad.c:4865
#25 0x00007fdcc2be0e29 in gst_type_find_element_sink_event (pad=<optimized
out>, parent=<optimized out>, event=0x7fdcc4003c00) at gsttypefindelement.c:678
#26 0x00007fdccfc29bb5 in gst_pad_send_event_unchecked (pad=0x7fdcbc011060,
event=0x7fdcc4003c00, type=GST_PAD_PROBE_TYPE_IDLE) at gstpad.c:5052
#27 0x00007fdccfc2a3ae in gst_pad_push_event_unchecked (pad=0x7fdcbc029020,
event=0x7fdcc4003c00, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4748
#28 0x00007fdccfc2aa18 in push_sticky (pad=0x7fdcbc029020, ev=0x7fdc927fb7b0,
user_data=0x7fdc927fb820) at gstpad.c:3381
#29 0x00007fdccfc28082 in events_foreach (pad=0x7fdcbc029020,
func=0x7fdccfc2a8c0 <push_sticky>, user_data=0x7fdc927fb820) at gstpad.c:533
#30 0x00007fdccfc32b58 in check_sticky (event=0x7fdcc4003c00,
pad=0x7fdcbc029020) at gstpad.c:3437
#31 gst_pad_push_event (pad=0x7fdcbc029020, event=0x7fdcc4003c00) at
gstpad.c:4865
#32 0x00007fdccfc32ce7 in event_forward_func (pad=0x7fdcbc029020,
data=0x7fdc927fb970) at gstpad.c:2778
#33 0x00007fdccfc3039a in gst_pad_forward (pad=0x7fdcbc026f40,
forward=0x7fdccfc32c10 <event_forward_func>, user_data=0x7fdc927fb970) at
gstpad.c:2732
#34 0x00007fdccfc30c99 in gst_pad_event_default (pad=<optimized out>,
parent=<optimized out>, event=0x7fdcc4003c00) at gstpad.c:2829
#35 0x00007fdccfc29bb5 in gst_pad_send_event_unchecked (pad=0x7fdcbc026f40,
event=0x7fdcc4003c00, type=GST_PAD_PROBE_TYPE_IDLE) at gstpad.c:5052
#36 0x00007fdccfc2a3ae in gst_pad_push_event_unchecked (pad=0x7fdcbc0109d0,
event=0x7fdcc4003c00, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4748
#37 0x00007fdccfc2aa18 in push_sticky (pad=0x7fdcbc0109d0, ev=0x7fdc927fbb90,
user_data=0x7fdc927fbc00) at gstpad.c:3381
#38 0x00007fdccfc28082 in events_foreach (pad=0x7fdcbc0109d0,
func=0x7fdccfc2a8c0 <push_sticky>, user_data=0x7fdc927fbc00) at gstpad.c:533
#39 0x00007fdccfc32b58 in check_sticky (event=0x7fdcc4003c00,
pad=0x7fdcbc0109d0) at gstpad.c:3437
#40 gst_pad_push_event (pad=0x7fdcbc0109d0, event=0x7fdcc4003c00) at
gstpad.c:4865
#41 0x00007fdcc2bcbeab in gst_single_queue_push_one (object=0x7fdcc4003c00,
sq=0x7fdcbc024e20, mq=0x7fdcbc02a330) at gstmultiqueue.c:1112
#42 gst_multi_queue_loop (pad=<optimized out>) at gstmultiqueue.c:1338
#43 0x00007fdccfc5c68f in gst_task_func (task=0x7fdcbc02c830) at gsttask.c:319
#44 0x00007fdccf111b06 in g_thread_pool_thread_proxy (data=<optimized out>) at
gthreadpool.c:309
#45 0x00007fdccf110ff5 in g_thread_proxy (data=0x7fdc800036d0) at gthread.c:798
#46 0x00007fdcd1cefe9a in start_thread (arg=0x7fdc927fc700) at
pthread_create.c:308
#47 0x00007fdcd1a1c3fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#48 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