[Bug 702520] New: queue: deadlock when reconfigure event

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Jun 17 17:50:17 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=702520
  GStreamer | gstreamer (core) | 1.1.1

           Summary: queue: deadlock when reconfigure event
    Classification: Platform
           Product: GStreamer
           Version: 1.1.1
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: aleix at oblong.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


I just switched from 1.0.7 to 1.1.1 and a working program got stuck. It seems
something (mutex lock) introduced in this commit:

http://cgit.freedesktop.org/gstreamer/gstreamer/commit/plugins/elements/gstqueue.c?id=c955ddc712f3b4de9ef5d822b95a6f4bd9985eb3

I still don't understand why this happens, I'll keep on checking.

This is the backtrace with the affected threads:

Thread 5 (Thread 0x7f3a73a0e700 (LWP 26201)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f3a7f3d780f in g_cond_wait () from
/opt/oblong/deps/lib/libglib-2.0.so.0
#2  0x00007f3a7432763c in gst_queue_loop (pad=<optimized out>) at
gstqueue.c:1226
#3  0x00007f3a7e1d5e3f in gst_task_func (task=0x18ca000) at gsttask.c:316
#4  0x00007f3a7f3be248 in ?? () from /opt/oblong/deps/lib/libglib-2.0.so.0
#5  0x00007f3a7f3bd9e5 in ?? () from /opt/oblong/deps/lib/libglib-2.0.so.0
#6  0x00007f3a7b306ae4 in ?? () from /usr/lib/libGL.so.1
#7  0x00007f3a7d2b2e9a in start_thread (arg=0x7f3a73a0e700) at
pthread_create.c:308
#8  0x00007f3a7eb72ccd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f3a73004700 (LWP 26202)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:132
#1  0x00007f3a7d2b509b in _L_lock_1006 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007f3a7d2b501c in __pthread_mutex_lock (mutex=0x18cf8e0) at
pthread_mutex_lock.c:101
#3  0x00007f3a7f3d7581 in g_mutex_lock () from
/opt/oblong/deps/lib/libglib-2.0.so.0
#4  0x00007f3a74328520 in gst_queue_handle_src_event (pad=0x18b0d30,
parent=<optimized out>, event=0x7f3a64003d80) at gstqueue.c:1288
#5  0x00007f3a7e1a538e in gst_pad_send_event_unchecked (pad=0x18b0d30,
event=0x7f3a64003d80, type=<optimized out>) at gstpad.c:4996
#6  0x00007f3a7e1a5a92 in gst_pad_push_event_unchecked (pad=0x18ba4a0,
event=0x7f3a64003d80, type=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:4685
#7  0x00007f3a7e1aea03 in gst_pad_push_event (pad=0x18ba4a0,
event=0x7f3a64003d80) at gstpad.c:4808
#8  0x00007f3a7e1aec37 in event_forward_func (pad=0x18ba4a0,
data=0x7f3a730019f0) at gstpad.c:2741
#9  0x00007f3a7e1aba8a in gst_pad_forward (pad=0x18b87d0,
forward=0x7f3a7e1aeb60 <event_forward_func>, user_data=0x7f3a730019f0) at
gstpad.c:2695
#10 0x00007f3a7e1ac239 in gst_pad_event_default (pad=<optimized out>,
parent=<optimized out>, event=0x7f3a64003d80) at gstpad.c:2792
#11 0x00007f3a7e1a538e in gst_pad_send_event_unchecked (pad=0x18b87d0,
event=0x7f3a64003d80, type=<optimized out>) at gstpad.c:4996
#12 0x00007f3a7e1a5a92 in gst_pad_push_event_unchecked (pad=0x18b8c90,
event=0x7f3a64003d80, type=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:4685
#13 0x00007f3a7e1aea03 in gst_pad_push_event (pad=0x18b8c90,
event=0x7f3a64003d80) at gstpad.c:4808
#14 0x00007f3a7e1aec37 in event_forward_func (pad=0x18b8c90,
data=0x7f3a73001e20) at gstpad.c:2741
#15 0x00007f3a7e1aba8a in gst_pad_forward (pad=0x18ba6e0,
forward=0x7f3a7e1aeb60 <event_forward_func>, user_data=0x7f3a73001e20) at
gstpad.c:2695
#16 0x00007f3a7e1ac239 in gst_pad_event_default (pad=<optimized out>,
parent=<optimized out>, event=0x7f3a64003d80) at gstpad.c:2792
#17 0x00007f3a7e1a538e in gst_pad_send_event_unchecked (pad=0x18ba6e0,
event=0x7f3a64003d80, type=<optimized out>) at gstpad.c:4996
#18 0x00007f3a7e1a5a92 in gst_pad_push_event_unchecked (pad=0x18b0f60,
event=0x7f3a64003d80, type=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:4685
#19 0x00007f3a7e1aea03 in gst_pad_push_event (pad=0x18b0f60,
event=0x7f3a64003d80) at gstpad.c:4808
#20 0x00007f3a74336de5 in gst_type_find_element_src_event (pad=<optimized out>,
parent=<optimized out>, event=0x7f3a64003d80) at gsttypefindelement.c:519
#21 0x00007f3a7e1a538e in gst_pad_send_event_unchecked (pad=0x18b1190,
event=0x7f3a64003d80, type=<optimized out>) at gstpad.c:4996
#22 0x00007f3a7e1a5a92 in gst_pad_push_event_unchecked (pad=0x18ba920,
event=0x7f3a64003d80, type=GST_PAD_PROBE_TYPE_EVENT_UPSTREAM) at gstpad.c:4685
#23 0x00007f3a7e1aea03 in gst_pad_push_event (pad=0x18ba920,
event=0x7f3a64003d80) at gstpad.c:4808
#24 0x00007f3a7e1aec37 in event_forward_func (pad=0x18ba920,
data=0x7f3a73002630) at gstpad.c:2741
#25 0x00007f3a7e1aba8a in gst_pad_forward (pad=0x7f3a64006100,
forward=0x7f3a7e1aeb60 <event_forward_func>, user_data=0x7f3a73002630) at
gstpad.c:2695
#26 0x00007f3a7e1ac239 in gst_pad_event_default (pad=<optimized out>,
parent=<optimized out>, event=0x7f3a64003d80) at gstpad.c:2792
#27 0x00007f3a7e1a538e in gst_pad_send_event_unchecked (pad=0x7f3a64006100,
event=0x7f3a64003d80, type=<optimized out>) at gstpad.c:4996
#28 0x00007f3a7e1aedc1 in gst_pad_send_event (pad=0x7f3a64006100,
event=0x7f3a64003d80) at gstpad.c:5154
#29 0x00007f3a7e1af174 in gst_pad_link_full (srcpad=0x7f3a64006100,
sinkpad=0x18b1a50, flags=<optimized out>) at gstpad.c:2289
.....
.....


Thread 2 (Thread 0x7f3a5ea52700 (LWP 26204)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f3a7f3d780f in g_cond_wait () from
/opt/oblong/deps/lib/libglib-2.0.so.0
#2  0x00007f3a74325c46 in gst_queue_handle_sink_query (pad=<optimized out>,
parent=0x18ae430, query=<optimized out>) at gstqueue.c:868
#3  0x00007f3a7e1ac7c6 in gst_pad_query (pad=0x18b0b00, query=0x18c2720) at
gstpad.c:3465
#4  0x00007f3a7e1acdb9 in gst_pad_peer_query (pad=0x18b08d0, query=0x18c2720)
at gstpad.c:3596
#5  0x00007f3a78b5b48a in gst_base_src_prepare_allocation (caps=0x18c2630,
basesrc=0x18d0130) at gstbasesrc.c:2974
#6  gst_base_src_negotiate (basesrc=0x18d0130) at gstbasesrc.c:3113
#7  gst_base_src_loop (pad=0x18b08d0) at gstbasesrc.c:2583
#8  0x00007f3a7e1d5e3f in gst_task_func (task=0x18ca240) at gsttask.c:316
#9  0x00007f3a7f3be248 in ?? () from /opt/oblong/deps/lib/libglib-2.0.so.0
#10 0x00007f3a7f3bd9e5 in ?? () from /opt/oblong/deps/lib/libglib-2.0.so.0
#11 0x00007f3a7b306ae4 in ?? () from /usr/lib/libGL.so.1
#12 0x00007f3a7d2b2e9a in start_thread (arg=0x7f3a5ea52700) at
pthread_create.c:308
#13 0x00007f3a7eb72ccd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 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