[Bug 711550] New: appsrc deadlock

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Nov 6 06:23:16 PST 2013


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

           Summary: appsrc deadlock
    Classification: Platform
           Product: GStreamer
           Version: 1.2.0
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: tcdgreenwood at hotmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


We have an application using rtpbin and appsrc which leaves us with a deadlock.
 From investigations I have found an example of some threads that lock.  It
seems to me that the deadlock is between the appsrc priv->mutex lock and the
stream lock.  I have reproduced this on 1.2.0 and 1.0.10. The appsrc line is:
      g_mutex_lock (&priv->mutex);

The line of code from the pad is:
        GST_PAD_STREAM_LOCK (pad);

I think the source of the issue is that appsrc list locking priv->mutex before
calling gst_app_src_do_negotiate.  As such I am developing a patch that avoids
this locking, I think that the priv->mutex is just trying to protect variables
such as the caps and new_caps flags.  In this way I think that I can call
do_negotiate outside of the lock as long as I ensure that the new_caps flag is
acted on after caps is changed.  Is there any reason why do_negotiate needs to
be inside the priv->mutex lock for appsrc?  I understand that it should be
thread safe so it's just ensuring that the appsrc logic is correct and caps
changes are responded to on the next check.  This plan would also follow some
of the other logic in appsrc where it unlocks before making callbacks to the
application.

Here are the full back traces of the two threads that appear deadlocked and the
relevant mutexes 

Thread 66 (Thread 0x7f185c4ca700 (LWP 15312)):
#0  0x00007f18f366b054 in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007f18f36663a3 in _L_lock_892 () from /lib64/libpthread.so.0
#2  0x00007f18f3666287 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00007f18e1eafc19 in gst_pad_send_event_unchecked (pad=0x7f18a000f290,
event=0x7f18a4003f00, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4782
#4  0x00007f18e1eaef70 in gst_pad_push_event_unchecked (pad=0x7f18a000ee30,
event=0x7f18a4003f00, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4515
#5  0x00007f18e1eaaec9 in push_sticky (pad=0x7f18a000ee30, ev=0x7f185c4c8b30,
user_data=0x7f185c4c8ba0) at gstpad.c:3286
#6  0x00007f18e1ea2ec9 in events_foreach (pad=0x7f18a000ee30,
func=0x7f18e1eaae06 <push_sticky>, user_data=0x7f185c4c8ba0) at gstpad.c:514
#7  0x00007f18e1eab1c0 in check_sticky (pad=0x7f18a000ee30) at gstpad.c:3334
#8  0x00007f18e1eaf4a7 in gst_pad_push_event (pad=0x7f18a000ee30,
event=0x7f18a4003f00) at gstpad.c:4636
#9  0x00007f185fdcdb8e in gst_rtp_jitter_buffer_sink_event (pad=0x7f18a000f060,
parent=0x7f18b418b540, event=0x7f18a4003f00) at gstrtpjitterbuffer.c:1056
#10 0x00007f18e1eafe64 in gst_pad_send_event_unchecked (pad=0x7f18a000f060,
event=0x7f18a4003f00, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4822
#11 0x00007f18e1eaef70 in gst_pad_push_event_unchecked (pad=0x7f18a000e9d0,
event=0x7f18a4003f00, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4515
#12 0x00007f18e1eaaec9 in push_sticky (pad=0x7f18a000e9d0, ev=0x7f185c4c8ea0,
user_data=0x7f185c4c8f10) at gstpad.c:3286
#13 0x00007f18e1ea2ec9 in events_foreach (pad=0x7f18a000e9d0,
func=0x7f18e1eaae06 <push_sticky>, user_data=0x7f185c4c8f10) at gstpad.c:514
#14 0x00007f18e1eab1c0 in check_sticky (pad=0x7f18a000e9d0) at gstpad.c:3334
#15 0x00007f18e1eaf4a7 in gst_pad_push_event (pad=0x7f18a000e9d0,
event=0x7f18a4003f00) at gstpad.c:4636
#16 0x00007f185fdd623a in gst_rtp_ssrc_demux_sink_event (pad=0x7f18740f1d10,
parent=0x7f18740a9570, event=0x7f18a4003ea0) at gstrtpssrcdemux.c:570
#17 0x00007f18e1eafe64 in gst_pad_send_event_unchecked (pad=0x7f18740f1d10,
event=0x7f18a4003ea0, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4822
#18 0x00007f18e1eaef70 in gst_pad_push_event_unchecked (pad=0x7f18740fefa0,
event=0x7f18a4003ea0, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4515
#19 0x00007f18e1eaaec9 in push_sticky (pad=0x7f18740fefa0, ev=0x7f185c4c9210,
user_data=0x7f185c4c9280) at gstpad.c:3286
#20 0x00007f18e1ea2ec9 in events_foreach (pad=0x7f18740fefa0,
func=0x7f18e1eaae06 <push_sticky>, user_data=0x7f185c4c9280) at gstpad.c:514
#21 0x00007f18e1eab1c0 in check_sticky (pad=0x7f18740fefa0) at gstpad.c:3334
#22 0x00007f18e1eaf4a7 in gst_pad_push_event (pad=0x7f18740fefa0,
event=0x7f18a4003ea0) at gstpad.c:4636
#23 0x00007f185fdef3a9 in gst_rtp_session_event_recv_rtp_sink
(pad=0x7f18740fed70, parent=0x7f187409ef90, event=0x7f18a4003ea0) at
gstrtpsession.c:1335
#24 0x00007f18e1eafe64 in gst_pad_send_event_unchecked (pad=0x7f18740fed70,
event=0x7f18a4003ea0, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4822
#25 0x00007f18e1eaef70 in gst_pad_push_event_unchecked (pad=0x7f18740d8fe0,
event=0x7f18a4003ea0, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4515
#26 0x00007f18e1eaaec9 in push_sticky (pad=0x7f18740d8fe0, ev=0x7f185c4c9600,
user_data=0x7f185c4c9670) at gstpad.c:3286
#27 0x00007f18e1ea2ec9 in events_foreach (pad=0x7f18740d8fe0,
func=0x7f18e1eaae06 <push_sticky>, user_data=0x7f185c4c9670) at gstpad.c:514
#28 0x00007f18e1eab1c0 in check_sticky (pad=0x7f18740d8fe0) at gstpad.c:3334
#29 0x00007f18e1eaf4a7 in gst_pad_push_event (pad=0x7f18740d8fe0,
event=0x7f18a4003ea0) at gstpad.c:4636
#30 0x00007f18e1ea97ff in event_forward_func (pad=0x7f18740d8fe0,
data=0x7f185c4c9830) at gstpad.c:2720
#31 0x00007f18e1ea95f1 in gst_pad_forward (pad=0x7f18740d3380,
forward=0x7f18e1ea96c7 <event_forward_func>, user_data=0x7f185c4c9830) at
gstpad.c:2674
#32 0x00007f18e1ea99b1 in gst_pad_event_default (pad=0x7f18740d3380,
parent=0x7f18ec756af0, event=0x7f18a4003ea0) at gstpad.c:2771
#33 0x00007f18e1eafe64 in gst_pad_send_event_unchecked (pad=0x7f18740d3380,
event=0x7f18a4003ea0, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4822
#34 0x00007f18e1eaef70 in gst_pad_push_event_unchecked (pad=0x7f18740feb40,
event=0x7f18a4003ea0, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at
gstpad.c:4515
#35 0x00007f18e1eaaec9 in push_sticky (pad=0x7f18740feb40, ev=0x7f185c4c9a70,
user_data=0x7f185c4c9ae0) at gstpad.c:3286
#36 0x00007f18e1ea2ec9 in events_foreach (pad=0x7f18740feb40,
func=0x7f18e1eaae06 <push_sticky>, user_data=0x7f185c4c9ae0) at gstpad.c:514
#37 0x00007f18e1eab1c0 in check_sticky (pad=0x7f18740feb40) at gstpad.c:3334
#38 0x00007f18e1eaf4a7 in gst_pad_push_event (pad=0x7f18740feb40,
event=0x7f18a4003ea0) at gstpad.c:4636
#39 0x00007f18e01c5b42 in gst_pad_set_caps (pad=0x7f18740feb40,
caps=0x7f18740b5680) at ../../../gst/gstcompat.h:71
#40 0x00007f18e01c78c8 in gst_base_src_set_caps (src=0x7f1874105ba0,
caps=0x7f18740b5680) at gstbasesrc.c:881
#41 0x00007f185f457a26 in gst_app_src_do_negotiate (basesrc=0x7f1874105ba0) at
gstappsrc.c:937
#42 0x00007f185f457a95 in gst_app_src_negotiate (basesrc=0x7f1874105ba0) at
gstappsrc.c:954
#43 0x00007f18e01cee77 in gst_base_src_negotiate (basesrc=0x7f1874105ba0) at
gstbasesrc.c:3101
#44 0x00007f18e01cd1f8 in gst_base_src_loop (pad=0x7f18740feb40) at
gstbasesrc.c:2580
#45 0x00007f18e1ee0270 in gst_task_func (task=0x7f187412a480) at gsttask.c:316
#46 0x00007f18e1ee1377 in default_func (tdata=0x7f18740bab60,
pool=0x7f18ec418840) at gsttaskpool.c:70
#47 0x00007f18e132b2c9 in g_thread_pool_thread_proxy (data=<value optimized
out>) at gthreadpool.c:309
#48 0x00007f18e132a4d5 in g_thread_proxy (data=0x7f18740ef400) at gthread.c:797
#49 0x00007f18f3664851 in start_thread () from /lib64/libpthread.so.0
#50 0x00007f18f2f9790d in clone () from /lib64/libc.so.6

Thread 32 (Thread 0x7f1852261700 (LWP 15346)):
#0  0x00007f18f366b054 in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007f18f36663be in _L_lock_995 () from /lib64/libpthread.so.0
#2  0x00007f18f3666326 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00007f18e1344851 in g_mutex_lock (mutex=<value optimized out>) at
gthread-posix.c:210
#4  0x00007f185f4574b1 in gst_app_src_query (src=0x7f1874105ba0,
query=0x7f18ac00a230) at gstappsrc.c:799
#5  0x00007f18e01c8ac0 in gst_base_src_query (pad=0x7f18740feb40,
parent=0x7f1874105ba0, query=0x7f18ac00a230) at gstbasesrc.c:1259
#6  0x00007f18e1eab5d9 in gst_pad_query (pad=0x7f18740feb40,
query=0x7f18ac00a230) at gstpad.c:3419
#7  0x00007f18e1eabea1 in gst_pad_peer_query (pad=0x7f18740d3380,
query=0x7f18ac00a230) at gstpad.c:3550
#8  0x00007f18e1eaa157 in query_forward_func (pad=0x7f18740d3380,
data=0x7f185225e740) at gstpad.c:2910
#9  0x00007f18e1ea95f1 in gst_pad_forward (pad=0x7f18740d8fe0,
forward=0x7f18e1eaa02a <query_forward_func>, user_data=0x7f185225e740) at
gstpad.c:2674
#10 0x00007f18e1eaa301 in gst_pad_query_default (pad=0x7f18740d8fe0,
parent=0x7f18740d3380, query=0x7f18ac00a230) at gstpad.c:2974
#11 0x00007f18e1eab5d9 in gst_pad_query (pad=0x7f18740d8fe0,
query=0x7f18ac00a230) at gstpad.c:3419
#12 0x00007f18e1eabea1 in gst_pad_peer_query (pad=0x7f18740fed70,
query=0x7f18ac00a230) at gstpad.c:3550
#13 0x00007f18e1eaa157 in query_forward_func (pad=0x7f18740fed70,
data=0x7f185225ea60) at gstpad.c:2910
#14 0x00007f18e1ea95f1 in gst_pad_forward (pad=0x7f18740fefa0,
forward=0x7f18e1eaa02a <query_forward_func>, user_data=0x7f185225ea60) at
gstpad.c:2674
#15 0x00007f18e1eaa301 in gst_pad_query_default (pad=0x7f18740fefa0,
parent=0x7f187409ef90, query=0x7f18ac00a230) at gstpad.c:2974
#16 0x00007f18e1eab5d9 in gst_pad_query (pad=0x7f18740fefa0,
query=0x7f18ac00a230) at gstpad.c:3419
#17 0x00007f18e1eabea1 in gst_pad_peer_query (pad=0x7f18740f1d10,
query=0x7f18ac00a230) at gstpad.c:3550
#18 0x00007f185fdd70aa in gst_rtp_ssrc_demux_src_query (pad=0x7f18a000e9d0,
parent=0x7f18740a9570, query=0x7f18ac00a230) at gstrtpssrcdemux.c:878
#19 0x00007f18e1eab5d9 in gst_pad_query (pad=0x7f18a000e9d0,
query=0x7f18ac00a230) at gstpad.c:3419
#20 0x00007f18e1eabea1 in gst_pad_peer_query (pad=0x7f18a000f060,
query=0x7f18ac00a230) at gstpad.c:3550
#21 0x00007f185fdd2681 in gst_rtp_jitter_buffer_src_query (pad=0x7f18a000ee30,
parent=0x7f18b418b540, query=0x7f18ac00a230) at gstrtpjitterbuffer.c:2144
#22 0x00007f18e1eab5d9 in gst_pad_query (pad=0x7f18a000ee30,
query=0x7f18ac00a230) at gstpad.c:3419
#23 0x00007f18e1eabea1 in gst_pad_peer_query (pad=0x7f18a000f290,
query=0x7f18ac00a230) at gstpad.c:3550
#24 0x00007f18e1eaa157 in query_forward_func (pad=0x7f18a000f290,
data=0x7f185225f270) at gstpad.c:2910
#25 0x00007f18e1ea95f1 in gst_pad_forward (pad=0x7f18ac0080f0,
forward=0x7f18e1eaa02a <query_forward_func>, user_data=0x7f185225f270) at
gstpad.c:2674
#26 0x00007f18e1eaa301 in gst_pad_query_default (pad=0x7f18ac0080f0,
parent=0x7f1874130c60, query=0x7f18ac00a230) at gstpad.c:2974
#27 0x00007f18e1eab5d9 in gst_pad_query (pad=0x7f18ac0080f0,
query=0x7f18ac00a230) at gstpad.c:3419
#28 0x00007f18e1eabea1 in gst_pad_peer_query (pad=0x7f18a800a4a0,
query=0x7f18ac00a230) at gstpad.c:3550
#29 0x00007f18e1eaa157 in query_forward_func (pad=0x7f18a800a4a0,
data=0x7f185225f590) at gstpad.c:2910
#30 0x00007f18e1ea95f1 in gst_pad_forward (pad=0x7f18a8008520,
forward=0x7f18e1eaa02a <query_forward_func>, user_data=0x7f185225f590) at
gstpad.c:2674
#31 0x00007f18e1eaa301 in gst_pad_query_default (pad=0x7f18a8008520,
parent=0x7f18ec756af0, query=0x7f18ac00a230) at gstpad.c:2974
#32 0x00007f18e1eab5d9 in gst_pad_query (pad=0x7f18a8008520,
query=0x7f18ac00a230) at gstpad.c:3419
#33 0x00007f18e1eabea1 in gst_pad_peer_query (pad=0x7f18740ff400,
query=0x7f18ac00a230) at gstpad.c:3550
#34 0x00007f18e1eaa157 in query_forward_func (pad=0x7f18740ff400,
data=0x7f185225f8b0) at gstpad.c:2910
#35 0x00007f18e1ea95f1 in gst_pad_forward (pad=0x7f18740ff630,
forward=0x7f18e1eaa02a <query_forward_func>, user_data=0x7f185225f8b0) at
gstpad.c:2674
#36 0x00007f18e1eaa301 in gst_pad_query_default (pad=0x7f18740ff630,
parent=0x7f18ec704a00, query=0x7f18ac00a230) at gstpad.c:2974
#37 0x00007f18e1eab5d9 in gst_pad_query (pad=0x7f18740ff630,
query=0x7f18ac00a230) at gstpad.c:3419
#38 0x00007f18e1eabea1 in gst_pad_peer_query (pad=0x7f18740ff860,
query=0x7f18ac00a230) at gstpad.c:3550
#39 0x00007f18da9eacba in gst_ffmpegviddec_set_format () from
/opt/cafex/fusion_media_broker/native/lib/gstreamer-1.0/libgstlibav.so
#40 0x00007f18e0ac916a in gst_video_decoder_setcaps (decoder=0x7f187410c800,
caps=0x7f18ac00a140) at gstvideodecoder.c:807
#41 0x00007f18e0ace427 in gst_video_decoder_chain (pad=0x7f18740ff860,
parent=0x7f187410c800, buf=0x7f1888009ea0) at gstvideodecoder.c:1968
#42 0x00007f18e1eac553 in gst_pad_chain_data_unchecked (pad=0x7f18740ff860,
type=4112, data=0x7f1888009ea0) at gstpad.c:3655
#43 0x00007f18e1ead027 in gst_pad_push_data (pad=0x7f18740ff630, type=4112,
data=0x7f1888009ea0) at gstpad.c:3872
#44 0x00007f18e1ead597 in gst_pad_push (pad=0x7f18740ff630,
buffer=0x7f1888009ea0) at gstpad.c:3975
#45 0x00007f18db8fd218 in gst_rtp_base_depayload_push (filter=0x7f18ec704a00,
out_buf=0x7f1888009ea0) at gstrtpbasedepayload.c:608
#46 0x00007f18db8fc818 in gst_rtp_base_depayload_chain (pad=0x7f18740ff400,
parent=0x7f18ec704a00, in=0x7f189c003d60) at gstrtpbasedepayload.c:356
#47 0x00007f18e1eac553 in gst_pad_chain_data_unchecked (pad=0x7f18740ff400,
type=4112, data=0x7f189c003d60) at gstpad.c:3655
#48 0x00007f18e1ead027 in gst_pad_push_data (pad=0x7f18a8008520, type=4112,
data=0x7f189c003d60) at gstpad.c:3872
#49 0x00007f18e1ead597 in gst_pad_push (pad=0x7f18a8008520,
buffer=0x7f189c003d60) at gstpad.c:3975
#50 0x00007f18e1e949ac in gst_proxy_pad_chain_default (pad=0x7f18a800a4a0,
parent=0x7f18a8008520, buffer=0x7f189c003d60) at gstghostpad.c:128
#51 0x00007f18e1eac553 in gst_pad_chain_data_unchecked (pad=0x7f18a800a4a0,
type=4112, data=0x7f189c003d60) at gstpad.c:3655
#52 0x00007f18e1ead027 in gst_pad_push_data (pad=0x7f18ac0080f0, type=4112,
data=0x7f189c003d60) at gstpad.c:3872
#53 0x00007f18e1ead597 in gst_pad_push (pad=0x7f18ac0080f0,
buffer=0x7f189c003d60) at gstpad.c:3975
#54 0x00007f185fdd4986 in gst_rtp_pt_demux_chain (pad=0x7f18a000f290,
parent=0x7f1874130c60, buf=0x7f189c003d60) at gstrtpptdemux.c:439
#55 0x00007f18e1eac553 in gst_pad_chain_data_unchecked (pad=0x7f18a000f290,
type=4112, data=0x7f189c003d60) at gstpad.c:3655
#56 0x00007f18e1ead027 in gst_pad_push_data (pad=0x7f18a000ee30, type=4112,
data=0x7f189c003d60) at gstpad.c:3872
#57 0x00007f18e1ead597 in gst_pad_push (pad=0x7f18a000ee30,
buffer=0x7f189c003d60) at gstpad.c:3975
#58 0x00007f185fdd194a in gst_rtp_jitter_buffer_loop
(jitterbuffer=0x7f18b418b540) at gstrtpjitterbuffer.c:1903
#59 0x00007f18e1ee0270 in gst_task_func (task=0x7f1874130d80) at gsttask.c:316
#60 0x00007f18e1ee1377 in default_func (tdata=0x7f18a4001d10,
pool=0x7f18ec418840) at gsttaskpool.c:70
#61 0x00007f18e132b2c9 in g_thread_pool_thread_proxy (data=<value optimized
out>) at gthreadpool.c:309
#62 0x00007f18e132a4d5 in g_thread_proxy (data=0x7f18a4003b70) at gthread.c:797
#63 0x00007f18f3664851 in start_thread () from /lib64/libpthread.so.0
#64 0x00007f18f2f9790d in clone () from /lib64/libc.so.6

With the following mutexes:

(gdb) thread 32
[Switching to thread 32 (Thread 0x7f1852261700 (LWP 15346))]#0 
0x00007f18f366b054 in __lll_lock_wait () from /lib64/libpthread.so.0
(gdb) frame 2
#2  0x00007f18f3666326 in pthread_mutex_lock () from /lib64/libpthread.so.0
(gdb) info reg
rax            0xfffffffffffffe00    -512
rbx            0x7f185225e3c4    139742434157508
rcx            0xffffffffffffffff    -1
rdx            0x65    101
rsi            0x80    128
rdi            0x7f1874104fa0    139743003168672
rbp            0x7f185225e400    0x7f185225e400
rsp            0x7f185225e398    0x7f185225e398
r8             0x7f1874104fa0    139743003168672
r9             0x3bf2    15346
r10            0x0    0
r11            0x202    514
r12            0x7f18e132b430    139744834139184
r13            0x0    0
r14            0x4    4
r15            0x7    7
rip            0x7f18f3666326    0x7f18f3666326 <pthread_mutex_lock+262>
eflags         0x202    [ IF ]
cs             0x33    51
ss             0x2b    43
ds             0x0    0
es             0x0    0
fs             0x0    0
gs             0x0    0
(gdb) p *(pthread_mutex_t*)0x7f1874104fa0
$1 = {__data = {__lock = 2, __count = 0, __owner = 15312, __nusers = 1, __kind
= 3, __spins = 92, __list = {__prev = 0x0, __next = 0x0}}, 
  __size =
"\002\000\000\000\000\000\000\000\320;\000\000\001\000\000\000\003\000\000\000\\",
'\000' <repeats 18 times>, __align = 2}

(gdb) thread 66
[Switching to thread 66 (Thread 0x7f185c4ca700 (LWP 15312))]#0 
0x00007f18f366b054 in __lll_lock_wait () from /lib64/libpthread.so.0
(gdb) frame 2
#2  0x00007f18f3666287 in pthread_mutex_lock () from /lib64/libpthread.so.0
(gdb) info reg
rax            0xfffffffffffffe00    -512
rbx            0x7f18e1eaae06    139744846196230
rcx            0xffffffffffffffff    -1
rdx            0x7f18a4001f40    139743807414080
rsi            0x80    128
rdi            0x7f18a4001a40    139743807412800
rbp            0x7f185c4c89e0    0x7f185c4c89e0
rsp            0x7f185c4c8928    0x7f185c4c8928
r8             0x7f18a4001a40    139743807412800
r9             0x3bd0    15312
r10            0xfffffffffffff9f8    -1544
r11            0x202    514
r12            0x7f18e132b430    139744834139184
r13            0x0    0
r14            0x4    4
r15            0x7    7
rip            0x7f18f3666287    0x7f18f3666287 <pthread_mutex_lock+103>
eflags         0x202    [ IF ]
cs             0x33    51
ss             0x2b    43
ds             0x0    0
es             0x0    0
fs             0x0    0
gs             0x0    0
(gdb) p *(pthread_mutex_t*)0x7f18a4001a40
$2 = {__data = {__lock = 2, __count = 1, __owner = 15346, __nusers = 1, __kind
= 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, 
  __size = "\002\000\000\000\001\000\000\000\362;\000\000\001\000\000\000\001",
'\000' <repeats 22 times>, __align = 4294967298}

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