[Bug 755123] tagdemux: protect internal state for concurrent access

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Sep 16 13:39:08 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=755123

--- Comment #4 from GstBlub <gstblub at gmail.com> ---
I've done some more testing and while I haven't run into any tagdemux crashes
anymore, I found another similar issue in decodebin:

1:11:49.314779015 18194 0xb20d9d40 WARN                 basesrc
gstbasesrc.c:3460:gst_base_src_start_complete:<source> pad not activated yet
1:11:49.315069258 18194 0xb20d9d40 WARN                GST_PADS
gstpad.c:1058:gst_pad_set_active:<qtdemux456:sink> Failed to activate pad
1:11:49.315317966 18194 0xb20d9d40 WARN               decodebin
gstdecodebin2.c:2218:connect_pad:<decodebin294> Couldn't set qtdemux456 to
PAUSED
GLib (gthread-posix.c): Unexpected error from C library during
'pthread_mutex_lock': Invalid argument.  Aborting.
[New LWP 24512]

Program received signal SIGABRT, Aborted.
[Switching to LWP 24512]
0xffffe424 in __kernel_vsyscall ()
(gdb) thread apply all bt

Thread 11 (LWP 24512):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb6cb2ec1 in raise () from /lib/libc.so.6
#2  0xb6cb4602 in abort () from /lib/libc.so.6
#3  0xb7516ac0 in ?? () from /usr/lib/libglib-2.0.so.0
#4  0xb4cf0092 in connect_pad (dbin=0xb3d0c340, src=0x81b41e8, dpad=0x83e3630,
pad=0xb3b32c48, caps=0x821c478, factories=0x82eb100, chain=0x846b1e8) at
gstdecodebin2.c:2222
#5  0xb4cede33 in analyze_new_pad (dbin=0xb3d0c340, src=0x81b41e8,
pad=0xb3b32c48, caps=0x821c478, chain=0x846b1e8) at gstdecodebin2.c:1742
#6  0xb4cf1277 in type_found (typefind=0x81b41e8, probability=100,
caps=0x821c478, decode_bin=0xb3d0c340) at gstdecodebin2.c:2535
#7  0xb727a78e in ffi_call_SYSV () from /usr/lib/libffi.so.6
#8  0xb727a425 in ffi_call () from /usr/lib/libffi.so.6
#9  0xb758cb24 in g_cclosure_marshal_generic () from
/usr/lib/libgobject-2.0.so.0
#10 0xb758e522 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#11 0xb75a4be6 in ?? () from /usr/lib/libgobject-2.0.so.0
#12 0xb75a5e34 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#13 0xb75a6432 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#14 0xb599164f in gst_type_find_element_loop (pad=0xb3b32eb8) at
gsttypefindelement.c:1091
#15 0xb7213e91 in gst_task_func (task=0x81c1a58) at gsttask.c:317
#16 0xb7ad0425 in start_thread () from /lib/libpthread.so.0
#17 0xb6d513fe in clone () from /lib/libc.so.6

Thread 1 (LWP 18194):
#0  pre_activate (pad=0x8835560, new_mode=GST_PAD_MODE_NONE) at gstpad.c:924
#1  0xb71d8469 in gst_pad_activate_mode (pad=0x8835560, mode=GST_PAD_MODE_PULL,
active=0) at gstpad.c:1144
#2  0xb71d83bb in gst_pad_activate_mode (pad=0xb3b32eb8,
mode=GST_PAD_MODE_PULL, active=0) at gstpad.c:1118
#3  0xb71d7fac in gst_pad_set_active (pad=0xb3b32eb8, active=0) at
gstpad.c:1031
#4  0xb71be671 in activate_pads (vpad=0xbfffe678, ret=0xbfffe6b8,
active=0xbfffe724) at gstelement.c:2687
#5  0xb71ce8c2 in gst_iterator_fold (it=0xb200c008, func=0xb71be636
<activate_pads>, ret=0xbfffe6b8, user_data=0xbfffe724) at gstiterator.c:612
#6  0xb71be711 in iterator_activate_fold_with_resync (iter=0xb200c008,
func=0xb71be636 <activate_pads>, user_data=0xbfffe724) at gstelement.c:2707
#7  0xb71be850 in gst_element_pads_activate (element=0x81b41e8, active=0) at
gstelement.c:2752
#8  0xb71beb3b in gst_element_change_state_func (element=0x81b41e8,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2815
#9  0xb5991cde in gst_type_find_element_change_state (element=0x81b41e8,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gsttypefindelement.c:1248
#10 0xb71be2b9 in gst_element_change_state (element=0x81b41e8,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2602
#11 0xb71be16f in gst_element_set_state_func (element=0x81b41e8,
state=GST_STATE_READY) at gstelement.c:2558
#12 0xb71bdd82 in gst_element_set_state (element=0x81b41e8,
state=GST_STATE_READY) at gstelement.c:2459
#13 0xb71945f7 in gst_bin_element_set_state (bin=0xb3d0c340, element=0x81b41e8,
base_time=0, start_time=0, current=GST_STATE_READY, next=GST_STATE_READY) at
gstbin.c:2328
#14 0xb7195c72 in gst_bin_change_state_func (element=0xb3d0c340, transition=18)
at gstbin.c:2665
#15 0xb4cf848a in gst_decode_bin_change_state (element=0xb3d0c340,
transition=18) at gstdecodebin2.c:4553
#16 0xb71be2b9 in gst_element_change_state (element=0xb3d0c340, transition=18)
at gstelement.c:2602
#17 0xb71be16f in gst_element_set_state_func (element=0xb3d0c340,
state=GST_STATE_READY) at gstelement.c:2558
#18 0xb71bdd82 in gst_element_set_state (element=0xb3d0c340,
state=GST_STATE_READY) at gstelement.c:2459
#19 0xb4cfc9a6 in remove_decoders (bin=0x820a1d0, force=0) at
gsturidecodebin.c:1645
#20 0xb4d00843 in gst_uri_decode_bin_change_state (element=0x820a1d0,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gsturidecodebin.c:2738
#21 0xb71be2b9 in gst_element_change_state (element=0x820a1d0,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2602
#22 0xb71be16f in gst_element_set_state_func (element=0x820a1d0,
state=GST_STATE_READY) at gstelement.c:2558
#23 0xb71bdd82 in gst_element_set_state (element=0x820a1d0,
state=GST_STATE_READY) at gstelement.c:2459
#24 0xb71945f7 in gst_bin_element_set_state (bin=0xb1fff830, element=0x820a1d0,
base_time=0, start_time=0, current=GST_STATE_PAUSED, next=GST_STATE_READY) at
gstbin.c:2328
#25 0xb7195c72 in gst_bin_change_state_func (element=0xb1fff830,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:2665
#26 0xb71e7857 in gst_pipeline_change_state (element=0xb1fff830,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstpipeline.c:469
#27 0xb4d0d277 in gst_play_bin_change_state (element=0xb1fff830,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstplaybin2.c:5487
#28 0xb71be2b9 in gst_element_change_state (element=0xb1fff830,
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2602
#29 0xb71be16f in gst_element_set_state_func (element=0xb1fff830,
state=GST_STATE_NULL) at gstelement.c:2558
#30 0xb71bdd82 in gst_element_set_state (element=0xb1fff830,
state=GST_STATE_NULL) at gstelement.c:2459
#31 0x080ba894 in .... code calling into gstreamer

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