[gstreamer-bugs] [Bug 166917] New: deadlock in queue

bugzilla-daemon at bugzilla.gnome.org bugzilla-daemon at bugzilla.gnome.org
Thu Feb 10 04:56:18 PST 2005


Please DO NOT reply to this by email. All additional comments should be made in
the comments box of this bug report.

 http://bugzilla.gnome.org/show_bug.cgi?id=166917
 GStreamer | gstreamer (core) | Ver: HEAD CVS

           Summary: deadlock in queue
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: thaytan at mad.scientist.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
                CC: all-bugs at bugzilla.gnome.org


Here's a deadlock scenario I keep encountering in totem. It's happening a lot
because of the high rate navigation events, I think.

Particularly, note that both thread 1 and thread 2 are waiting on the item_add
for the same queue, one sending a src_event and one calling _get. I don't know
how that happens other than a bug in opt?

(gdb) thread 1
[Switching to thread 1 (Thread -1224661536 (LWP 4379))]#0  0xffffe410 in ?? ()
(gdb) bt
#0  0xffffe410 in ?? ()
#1  0xbfffeba8 in ?? ()
#2  0x0000015f in ?? ()
#3  0x00000000 in ?? ()
#4  0xb76741ca in pthread_cond_timedwait@@GLIBC_2.3.2 () from
/lib/tls/i686/cmov/libpthread.so.0
#5  0xb777d7e9 in ?? () from /usr/lib/libgthread-2.0.so.0
#6  0x08418540 in ?? ()
#7  0x08418468 in ?? ()
#8  0xbfffeba8 in ?? ()
#9  0xb77ef2f4 in gst_debug_log (category=0x8418540, level=138511464,
file=0xbfffebf8 "éW\vB51\b", function=0xb7841f48 "gst_queue_handle_src_event",
line=918, object=0x8417fc0,
    format=0xb7842a20 "doing g_cond_wait using qlock from thread %p") at
gstinfo.c:318
#10 0xb780b3f4 in gst_queue_handle_src_event (pad=0x8418380, event=0x80964b8) at
gstqueue.c:919
#11 0xb7802079 in gst_pad_send_event (pad=0x8418380, event=0x80964b8) at
gstpad.c:4214
#12 0xb7801890 in gst_pad_event_default_dispatch (pad=0x8576098,
element=0x85740f0, event=0x80964b8) at gstpad.c:4071
#13 0xb7801bdb in gst_pad_event_default (pad=0x8576098, event=0x80964b8) at
gstpad.c:4136
#14 0xb7802079 in gst_pad_send_event (pad=0x8576098, event=0x80964b8) at
gstpad.c:4214
#15 0xb7801890 in gst_pad_event_default_dispatch (pad=0x80ac298,
element=0x80ac3c8, event=0x80964b8) at gstpad.c:4071
#16 0xb7801bdb in gst_pad_event_default (pad=0x80ac298, event=0x80964b8) at
gstpad.c:4136
#17 0xb7802079 in gst_pad_send_event (pad=0x80ac298, event=0x80964b8) at
gstpad.c:4214
#18 0xb7801890 in gst_pad_event_default_dispatch (pad=0x856d138,
element=0x8119cc0, event=0x80964b8) at gstpad.c:4071
#19 0xb7801bdb in gst_pad_event_default (pad=0x856d138, event=0x80964b8) at
gstpad.c:4136
#20 0xb5a923e4 in gst_videoscale_handle_src_event (pad=0x856d138,
event=0x80964b8) at gstvideoscale.c:511
#21 0xb7802079 in gst_pad_send_event (pad=0x856d138, event=0x80964b8) at
gstpad.c:4214
#22 0xb657f4c4 in gst_xvimagesink_navigation_send_event (navigation=0x83d4660,
structure=0x857c0e0) at xvimagesink.c:1577
#23 0xb78f2b91 in gst_navigation_send_event (navigation=0x83d4660,
structure=0x857c0e0) at navigation.c:70
#24 0xb78f2cad in gst_navigation_send_mouse_event (navigation=0x83d4660,
event=0x807d47d "mouse-move", button=0, x=392, y=532) at navigation.c:87
#25 0x0806fabe in bacon_video_widget_motion_notify (widget=0x83c8e78,
event=0x8336d20) at bacon-video-widget-gst.c:397
#26 0xb7b7ca46 in _gtk_marshal_BOOLEAN__BOXED () from /usr/lib/libgtk-x11-2.0.so.0
#27 0xb77915bf in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#28 0xb7791351 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#29 0xb77a1270 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#30 0xb77a06ef in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#31 0xb77a0b75 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#32 0xb7c5e724 in gtk_widget_send_expose () from /usr/lib/libgtk-x11-2.0.so.0
#33 0xb7b7b65a in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#34 0xb7b7a637 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#35 0xb7a36b73 in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
#36 0xb75e1ce7 in g_main_depth () from /usr/lib/libglib-2.0.so.0
#37 0xb75e2c8d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#38 0xb75e2faf in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#39 0xb75e34f6 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#40 0xb7b79f8b in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#41 0x0806338c in main (argc=2, argv=0xbffff818) at totem.c:3527
(gdb) thread 2
[Switching to thread 2 (Thread -1247220816 (LWP 4383))]#0  0xffffe410 in ?? ()
(gdb) bt
#0  0xffffe410 in ?? ()
#1  0xb5a8e3e8 in ?? ()
#2  0x00000025 in ?? ()
#3  0x00000000 in ?? ()
#4  0xb767400e in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/i686/cmov/libpthread.so.0
#5  0xb780a850 in gst_queue_get (pad=0x8418380) at gstqueue.c:826
#6  0xb780340d in gst_pad_call_get_function (pad=0x8418380) at gstpad.c:4519
#7  0xb64afe52 in get_group_schedule_function (argc=0, argv=0x811bcb0) at
gstoptimalscheduler.c:1409
#8  0xb64af308 in schedule_group (group=0x811bcb0) at gstoptimalscheduler.c:1222
#9  0xb64af514 in gst_opt_scheduler_schedule_run_queue (osched=0x8561618,
only_group=0x0) at gstoptimalscheduler.c:1274
#10 0xb64af7d7 in schedule_chain (chain=0x8578f90) at gstoptimalscheduler.c:1331
#11 0xb64b4245 in gst_opt_scheduler_iterate (sched=0x8561618) at
gstoptimalscheduler.c:2789
#12 0xb780ef49 in gst_scheduler_iterate (sched=0x8561618) at gstscheduler.c:744
#13 0xb77d7231 in gst_bin_iterate_func (bin=0x80acb80) at gstbin.c:1246
#14 0xb78289f3 in gst_marshal_BOOLEAN__VOID (closure=0x8091350,
return_value=0xb5a8e770, n_param_values=1, param_values=0xb5a8e8b0,
invocation_hint=0xb5a8e798, marshal_data=0xb77d71cf)
    at gstmarshal.c:509
#15 0xb77915bf in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#16 0xb7791351 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#17 0xb77a1270 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#18 0xb77a06ef in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#19 0xb77a0b75 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#20 0xb77d755b in gst_bin_iterate (bin=0x80acb80) at gstbin.c:1306
#21 0xb7819977 in gst_thread_main_loop (arg=0x80acb80) at gstthread.c:688
#22 0xb75fb2f2 in g_static_private_free () from /usr/lib/libglib-2.0.so.0
#23 0xb7671ae0 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#24 0xb747fcda in clone () from /lib/tls/i686/cmov/libc.so.6
(gdb) thread 3
[Switching to thread 3 (Thread -1244976208 (LWP 4382))]#0  0xffffe410 in ?? ()
(gdb) bt
#0  0xffffe410 in ?? ()
#1  0xb5cb23e8 in ?? ()
#2  0x000000ce in ?? ()
#3  0x00000000 in ?? ()
#4  0xb767400e in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/i686/cmov/libpthread.so.0
#5  0xb780a850 in gst_queue_get (pad=0x8423f80) at gstqueue.c:826
#6  0xb780340d in gst_pad_call_get_function (pad=0x8423f80) at gstpad.c:4519
#7  0xb64afe52 in get_group_schedule_function (argc=0, argv=0x8557e68) at
gstoptimalscheduler.c:1409
#8  0xb64af308 in schedule_group (group=0x8557e68) at gstoptimalscheduler.c:1222
#9  0xb64af514 in gst_opt_scheduler_schedule_run_queue (osched=0x8556498,
only_group=0x0) at gstoptimalscheduler.c:1274
#10 0xb64af7d7 in schedule_chain (chain=0x85750b8) at gstoptimalscheduler.c:1331
#11 0xb64b4245 in gst_opt_scheduler_iterate (sched=0x8556498) at
gstoptimalscheduler.c:2789
#12 0xb780ef49 in gst_scheduler_iterate (sched=0x8556498) at gstscheduler.c:744
#13 0xb77d7231 in gst_bin_iterate_func (bin=0x856c080) at gstbin.c:1246
#14 0xb78289f3 in gst_marshal_BOOLEAN__VOID (closure=0x8091350,
return_value=0xb5cb2770, n_param_values=1, param_values=0xb5cb28b0,
invocation_hint=0xb5cb2798, marshal_data=0xb77d71cf)
    at gstmarshal.c:509
#15 0xb77915bf in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#16 0xb7791351 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#17 0xb77a1270 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#18 0xb77a06ef in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#19 0xb77a0b75 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#20 0xb77d755b in gst_bin_iterate (bin=0x856c080) at gstbin.c:1306
#21 0xb7819977 in gst_thread_main_loop (arg=0x856c080) at gstthread.c:688
#22 0xb75fb2f2 in g_static_private_free () from /usr/lib/libglib-2.0.so.0
#23 0xb7671ae0 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#24 0xb747fcda in clone () from /lib/tls/i686/cmov/libc.so.6
(gdb) thread 4
[Switching to thread 4 (Thread -1236620368 (LWP 4381))]#0  0xffffe410 in ?? ()
(gdb) bt
#0  0xffffe410 in ?? ()
#1  0xb64a9d28 in ?? ()
#2  0x00000000 in ?? ()
#3  0x00000000 in ?? ()
#4  0xb767400e in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/i686/cmov/libpthread.so.0
#5  0xb7809425 in gst_queue_chain (pad=0x8532690, data=0x866ba8c) at gstqueue.c:706
#6  0xb7803251 in gst_pad_call_chain_function (pad=0x8532690, data=0x866ba8c) at
gstpad.c:4496
#7  0xb77ff181 in gst_pad_push (pad=0x8442210, data=0x866ba8c) at gstpad.c:3298
#8  0xb65a84aa in gst_stream_selector_chain (pad=0x8534d80, data=0x866ba8c) at
gststreamselector.c:292
#9  0xb7803251 in gst_pad_call_chain_function (pad=0x8534d80, data=0x866ba8c) at
gstpad.c:4496
#10 0xb77ff181 in gst_pad_push (pad=0x857b968, data=0x866ba8c) at gstpad.c:3298
#11 0xb5cca999 in gst_dtsdec_handle_frame (dts=0x8572388, data=0x863b448
"U¢Ù:\001P", length=1006, flags=2, sample_rate=48000, bit_rate=768000) at
gstdtsdec.c:438
#12 0xb5ccae5c in gst_dtsdec_chain (pad=0x8443cd0, _data=0x866bc5c) at
gstdtsdec.c:492
#13 0xb7803251 in gst_pad_call_chain_function (pad=0x8443cd0, data=0x866bc5c) at
gstpad.c:4496
#14 0xb77ff181 in gst_pad_push (pad=0x843c078, data=0x866bc5c) at gstpad.c:3298
#15 0xb61b947c in gst_mpeg_demux_send_subbuffer (mpeg_demux=0x8413ac0,
outstream=0x8585f98, buffer=0x84f4804, timestamp=2986666667, offset=22,
size=2012) at gstmpegdemux.c:943
#16 0xb61bd60a in gst_dvd_demux_send_subbuffer (mpeg_demux=0x8413ac0,
outstream=0x8585f98, buffer=0x84f4804, timestamp=2986666667, offset=22,
size=2012) at gstdvddemux.c:937
#17 0xb61bd489 in gst_dvd_demux_process_private (mpeg_demux=0x8413ac0,
buffer=0x84f4804, stream_nr=0, timestamp=2986666667, headerlen=18, datalen=2012)
at gstdvddemux.c:901
#18 0xb61b8ca6 in gst_mpeg_demux_parse_pes (mpeg_parse=0x8413ac0,
buffer=0x84f4804) at gstmpegdemux.c:887
#19 0xb61b34ba in gst_mpeg_parse_loop (element=0x8413ac0) at gstmpegparse.c:599
#20 0xb64b0039 in loop_group_schedule_function (argc=0, argv=0x8414548) at
gstoptimalscheduler.c:1451
#21 0xb64af308 in schedule_group (group=0x8414548) at gstoptimalscheduler.c:1222
#22 0xb64af514 in gst_opt_scheduler_schedule_run_queue (osched=0x83f0dd8,
only_group=0x0) at gstoptimalscheduler.c:1274
#23 0xb64af7d7 in schedule_chain (chain=0x83f3b58) at gstoptimalscheduler.c:1331
#24 0xb64b4245 in gst_opt_scheduler_iterate (sched=0x83f0dd8) at
gstoptimalscheduler.c:2789
#25 0xb780ef49 in gst_scheduler_iterate (sched=0x83f0dd8) at gstscheduler.c:744
#26 0xb77d7231 in gst_bin_iterate_func (bin=0x83f0390) at gstbin.c:1246
#27 0xb78289f3 in gst_marshal_BOOLEAN__VOID (closure=0x8091350,
return_value=0xb64aa770, n_param_values=1, param_values=0xb64aa8b0,
invocation_hint=0xb64aa798, marshal_data=0xb77d71cf)
    at gstmarshal.c:509
#28 0xb77915bf in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#29 0xb7791351 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#30 0xb77a1270 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#31 0xb77a06ef in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#32 0xb77a0b75 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#33 0xb77d755b in gst_bin_iterate (bin=0x83f0390) at gstbin.c:1306
#34 0xb7819977 in gst_thread_main_loop (arg=0x83f0390) at gstthread.c:688
#35 0xb75fb2f2 in g_static_private_free () from /usr/lib/libglib-2.0.so.0
#36 0xb7671ae0 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#37 0xb747fcda in clone () from /lib/tls/i686/cmov/libc.so.6
(gdb) thread 5
[Switching to thread 5 (Thread -1227174992 (LWP 4380))]#0  0xffffe410 in ?? ()
(gdb) bt
#0  0xffffe410 in ?? ()
#1  0xb6dac9d8 in ?? ()
#2  0xffffffff in ?? ()
#3  0x00000009 in ?? ()
#4  0xb7477589 in poll () from /lib/tls/i686/cmov/libc.so.6
#5  0xb75e38b6 in g_main_loop_get_context () from /usr/lib/libglib-2.0.so.0
#6  0xb75e2f2f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#7  0xb75e34f6 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#8  0xb792ef28 in link_thread_io_context () from /usr/lib/libORBit-2.so.0
#9  0xb763a398 in ?? () from /usr/lib/libglib-2.0.so.0
#10 0xb6dacad8 in ?? ()
#11 0xb75fb2f2 in g_static_private_free () from /usr/lib/libglib-2.0.so.0
Previous frame inner to this frame (corrupt stack?)

------- You are receiving this mail because: -------
You are the assignee for the bug.
You are the QA contact for the bug.




More information about the Gstreamer-bugs mailing list