[gstreamer-bugs] [Bug 321486] New: playbin / gst-python thread condition race

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Mon Nov 14 17:59:00 PST 2005


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=321486
 GStreamer | gstreamer (core) | Ver: HEAD CVS

           Summary: playbin / gst-python thread condition race
           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: johan at gnome.org
         QAContact: gstreamer-bugs at lists.sourceforge.net
                CC: all-bugs at bugzilla.gnome.org


I have a small python program that uses gnomevfs async methods and playbin to
read tags. Sometimes I run into this race. I'm not sure if it's gst-pythons,
gstreamers, vorbisdec, playbin or gnome-vfs' fault.

Thread 1:

#0  0xffffe410 in ?? ()
#1  0xbf8aebc8 in ?? ()
#2  0x00000002 in ?? ()
#3  0x00000000 in ?? ()
#4  0xb7f902ce in __lll_mutex_lock_wait ()
   from /lib/tls/i686/cmov/libpthread.so.0
#5  0xb7f8cfdb in _L_mutex_lock_33 () from /lib/tls/i686/cmov/libpthread.so.0
#6  0xbf8aebc8 in ?? ()
#7  0xb7f9aea2 in g_thread_equal_posix_impl (thread1=0xfffffffc, 
    thread2=0xfffffffc) at gthread-posix.c:412
#8  0xb797308a in IA__g_static_rec_mutex_lock (mutex=0x20ee) at gthread.c:280
#9  0xb6f52545 in gst_pad_stop_task (pad=0x83460f8) at gstpad.c:3767
#10 0xb703ce28 in gst_base_sink_deactivate (basesink=Variable "basesink" is not
available.
) at gstbasesink.c:1298
#11 0xb703d1b2 in gst_base_sink_activate_push (pad=0x83460f8, active=0)
    at gstbasesink.c:1355
#12 0xb6f4a7f3 in gst_pad_activate_push (pad=0x83460f8, active=0)
    at gstpad.c:768
#13 0xb6f4debf in gst_pad_set_active (pad=0x83460f8, active=0) at gstpad.c:618
#14 0xb6f3e181 in activate_pads (pad=0x83460f8, ret=0xbf8aed34, 
    active=0xbf8aed30) at gstelement.c:2229
#15 0xb6f47cef in gst_iterator_fold (it=0x83cbf68, 
    func=0xb6f3e160 <activate_pads>, ret=0xbf8aed34, user_data=0xbf8aed30)
    at gstiterator.c:499
---Type <return> to continue, or q <return> to quit---
#16 0xb6f3e209 in iterator_fold_with_resync (iter=0x83cbf68, 
    func=0xb6f3e160 <activate_pads>, ret=0xbf8aed34, user_data=0xbf8aed30)
    at gstelement.c:2247
#17 0xb6f3e358 in gst_element_pads_activate (element=0x8345bf8, active=0)
    at gstelement.c:2290
#18 0xb6f3e650 in gst_element_change_state_func (element=dwarf2_read_address:
Corrupted DWARF expression.
) at gstelement.c:2339
#19 0xb703da29 in gst_base_sink_change_state (element=0x8345bf8, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbasesink.c:1638
#20 0xb6ac81f8 in gst_fake_sink_change_state (element=0x8345bf8, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstfakesink.c:408
#21 0xb6f3d837 in gst_element_change_state (element=0x8345bf8,
transition=Variable "transition" is not available.
    at gstelement.c:2149
#22 0xb6f3de85 in gst_element_set_state_func (element=0x8345bf8, 
    state=GST_STATE_READY) at gstelement.c:2111
#23 0xb6f3cc07 in gst_element_set_state (element=0x8345bf8, 
    state=GST_STATE_READY) at gstelement.c:2028
#24 0xb6f31d3f in gst_bin_change_state_func (element=0x8394700, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:1554
#25 0xb6f3d837 in gst_element_change_state (element=0x8394700,
transition=Variable "transition" is not available.
)
    at gstelement.c:2149
#26 0xb6f3de85 in gst_element_set_state_func (element=0x8394700, 
    state=GST_STATE_READY) at gstelement.c:2111
#27 0xb6f3cc07 in gst_element_set_state (element=0x8394700, 
---Type <return> to continue, or q <return> to quit---
    state=GST_STATE_READY) at gstelement.c:2028
#28 0xb6f31d3f in gst_bin_change_state_func (element=0x8347ff0, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:1554
#29 0xb6f5316d in gst_pipeline_change_state (element=0x8347ff0, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstpipeline.c:349
#30 0xb6aba758 in gst_play_base_bin_change_state (element=0x8347ff0, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstplaybasebin.c:1712
#31 0xb6ab7107 in gst_play_bin_change_state (element=0x8347ff0, 
    transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstplaybin.c:994
#32 0xb6f3d837 in gst_element_change_state (element=0x8347ff0,
transition=Variable "transition" is not available.
)
    at gstelement.c:2149
#33 0xb6f3de85 in gst_element_set_state_func (element=0x8347ff0, 
    state=GST_STATE_NULL) at gstelement.c:2111
#34 0xb6f3cc07 in gst_element_set_state (element=0x8347ff0, 
    state=GST_STATE_NULL) at gstelement.c:2028
#35 0xb7064aff in _wrap_gst_element_set_state (self=0xfffffffc, 
    args=0xb6adbcec, kwargs=0x0) at gstelement.override:69
#36 0x080b6a11 in PyEval_EvalFrame (f=0x815bd7c) at ../Python/ceval.c:3558
#37 0x080b726d in PyEval_EvalCodeEx (co=0xb7dd05a0, globals=0xb7e06824, 
    locals=0x0, args=0xb6adbc58, argcount=1, kws=0x0, kwcount=0, 
    defs=0xb6adbaf8, defcount=1, closure=0x0) at ../Python/ceval.c:2736
#38 0x080fb6fd in function_call (func=0xb6ae68b4, arg=0xb6adbc4c, kw=0x0)
    at ../Objects/funcobject.c:548
---Type <return> to continue, or q <return> to quit---
#39 0x0805950c in PyObject_Call (func=0xb6ae68b4, arg=0xfffffffc, 
    kw=0xfffffffc) at ../Objects/abstract.c:1756
#40 0x0805eac5 in instancemethod_call (func=0xb6ae68b4, arg=0xb6adbc4c, 
    kw=0xfffffffc) at ../Objects/classobject.c:2447
#41 0x0805950c in PyObject_Call (func=0xb7b7339c, arg=0xfffffffc, 
    kw=0xfffffffc) at ../Objects/abstract.c:1756
#42 0x080afed7 in PyEval_CallObjectWithKeywords (func=0xfffffffc, 
    arg=0xb7dee02c, kw=0x0) at ../Python/ceval.c:3425
#43 0x080594e3 in PyObject_CallObject (o=0xfffffffc, a=0xfffffffc)
    at ../Objects/abstract.c:1747
#44 0xb7a0b4f6 in ?? ()
   from /usr/lib/python2.4/site-packages/gtk-2.0/gobject.so
#45 0xb7b7339c in ?? ()
#46 0xb7dee02c in ?? ()
#47 0x43793e27 in ?? ()
#48 0xb79af180 in ?? () from /usr/lib/libglib-2.0.so.0
#49 0xb7f8ce80 in pthread_mutex_destroy ()
   from /lib/tls/i686/cmov/libpthread.so.0
#50 0xb7959750 in g_idle_dispatch (source=0x8376448, 
    callback=0xb7a0b492 <init_cairo+59647>, user_data=0xfffffffc)
    at gmain.c:3813
#51 0xb79574ee in IA__g_main_context_dispatch (context=0x822e6f8)
    at gmain.c:1934
---Type <return> to continue, or q <return> to quit---
#52 0xb795a4f6 in g_main_context_iterate (context=0x822e6f8, block=1, 
    dispatch=1, self=0x8192ff0) at gmain.c:2565
#53 0xb795a7e3 in IA__g_main_loop_run (loop=0x830aa80) at gmain.c:2769
#54 0xb760fe65 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#55 0xb78cc484 in init_gtk ()
   from /usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so
#56 0x080b61c3 in PyEval_EvalFrame (f=0x813f1ac) at ../Python/ceval.c:3542
#57 0x080b726d in PyEval_EvalCodeEx (co=0xb7dd0760, globals=0xb7e06824, 
    locals=0xb7e06824, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, 
    defcount=0, closure=0x0) at ../Python/ceval.c:2736
#58 0x080b73ae in PyEval_EvalCode (co=0xfffffffc, globals=0xfffffffc, 
    locals=0xfffffffc) at ../Python/ceval.c:484
#59 0x080d8ffc in PyRun_FileExFlags (fp=0x813d008, 
    filename=0xbf8b1ac6 "bin.py", start=-4, globals=0xfffffffc, 
    locals=0xfffffffc, closeit=1, flags=0xbf8afbb4)
    at ../Python/pythonrun.c:1265
#60 0x080d929c in PyRun_SimpleFileExFlags (fp=Variable "fp" is not available.
) at ../Python/pythonrun.c:860
#61 0x08055a06 in Py_Main (argc=1238, argv=0xbf8afc54) at ../Modules/main.c:484
#62 0xb7e43ea2 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#63 0x08054f21 in _start () at ../sysdeps/i386/elf/start.S:119

Thread 2:
#4  0xb7f8dc96 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/i686/cmov/libpthread.so.0
#5  0xb794081c in g_async_queue_pop_intern_unlocked (queue=0x82ccb90,
try=Variable "try" is not available.
)
    at gasyncqueue.c:231
#6  0xb79755c4 in g_thread_pool_thread_proxy (data=0x83664d8)
    at gthreadpool.c:97


Thread 3:
#0  0xffffe410 in ?? ()
#1  0xb40a5ea0 in ?? ()
#2  0x00000001 in ?? ()
#3  0x00000000 in ?? ()
#4  0xb7f8dc96 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/i686/cmov/libpthread.so.0
#5  0xb6f591e7 in gst_queue_chain (pad=0x83e23b8, buffer=0x84f5970)
    at gstqueue.c:692
#6  0xb6f5049c in gst_pad_chain (pad=0x83e23b8, buffer=0x84f5970)
    at gstpad.c:3092
#7  0xb6f50acf in gst_pad_push (pad=0x83855d0, buffer=0x84f5970)
    at gstpad.c:3191
#8  0xb6abc7e2 in gst_stream_selector_chain (pad=0x837a480, buf=0x84f5970)
    at gststreamselector.c:261
#9  0xb6f5049c in gst_pad_chain (pad=0x837a480, buffer=0x84f5970)
    at gstpad.c:3092
#10 0xb6f426ba in gst_proxy_pad_do_chain (pad=0xfffffffc, buffer=0x84f5970)
    at gstghostpad.c:192
#11 0xb6f5049c in gst_pad_chain (pad=0x837a630, buffer=0x84f5970)
    at gstpad.c:3092
#12 0xb6f50acf in gst_pad_push (pad=0x83843f0, buffer=0x84f5970)
    at gstpad.c:3191
#13 0xb61eb4c0 in vorbis_handle_data_packet (vd=0x8383930, packet=0xb40a6130)
    at vorbisdec.c:751
#14 0xb61ec15b in vorbis_dec_chain (pad=0xfffffffc, buffer=0x84e1890)
    at vorbisdec.c:914
#15 0xb6f5049c in gst_pad_chain (pad=0x83a3d78, buffer=0x84e1890)
    at gstpad.c:3092
#16 0xb6f50acf in gst_pad_push (pad=0x838eef8, buffer=0x84e1890)
    at gstpad.c:3191
#17 0xb6a1d2e4 in gst_ogg_pad_submit_page (pad=0x838eef8, page=Variable "page"
is not available.
)
    at gstoggdemux.c:717
#18 0xb6a1e406 in gst_ogg_demux_chain (pad=0xfffffffc, buffer=0x84cc430)
    at gstoggdemux.c:2277
#19 0xb6a1eef8 in gst_ogg_demux_loop (pad=0xfffffffc) at gstoggdemux.c:2383
#20 0xb6f66fa8 in gst_task_func (task=0x8390028, tclass=0x83665a8)
    at gsttask.c:186
#21 0xb79755a2 in g_thread_pool_thread_proxy (data=0x83664d8)
    at gthreadpool.c:114
#22 0xb79738c4 in g_thread_create_proxy (data=0x836b5b0) at gthread.c:564
#23 0xb7f8b361 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#24 0xb7ef7bde in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 4:
#0  0xffffe410 in ?? ()
#1  0xb38a436c in ?? ()
#2  0x00000002 in ?? ()
#3  0x00000000 in ?? ()
#4  0xb7f902ce in __lll_mutex_lock_wait ()
   from /lib/tls/i686/cmov/libpthread.so.0
#5  0xb7f8cfdb in _L_mutex_lock_33 () from /lib/tls/i686/cmov/libpthread.so.0
#6  0xb38a436c in ?? ()
#7  0xb7f9aea2 in g_thread_equal_posix_impl (thread1=0xfffffffc, 
    thread2=0xfffffffc) at gthread-posix.c:412
#8  0xb797308a in IA__g_static_rec_mutex_lock (mutex=0x20ff) at gthread.c:280
#9  0xb6f3e007 in gst_element_set_state_func (element=0x8347ff0, 
    state=GST_STATE_PAUSED) at gstelement.c:2052
#10 0xb6f3cc07 in gst_element_set_state (element=0x8347ff0, 
    state=GST_STATE_PAUSED) at gstelement.c:2028
#11 0xb7064aff in _wrap_gst_element_set_state (self=0xfffffffc, 
    args=0xb6ae5ecc, kwargs=0x0) at gstelement.override:69
#12 0x080b6a11 in PyEval_EvalFrame (f=0x8179d24) at ../Python/ceval.c:3558
#13 0x080b726d in PyEval_EvalCodeEx (co=0xb7dd0520, globals=0xb7e06824, 
    locals=0x0, args=0xb7db7240, argcount=4, kws=0x0, kwcount=0, defs=0x0, 
    defcount=0, closure=0x0) at ../Python/ceval.c:2736
#14 0x080fb6fd in function_call (func=0xb6ae687c, arg=0xb7db7234, kw=0x0)
    at ../Objects/funcobject.c:548
---Type <return> to continue, or q <return> to quit---
#15 0x0805950c in PyObject_Call (func=0xb6ae687c, arg=0xfffffffc, 
    kw=0xfffffffc) at ../Objects/abstract.c:1756
#16 0x0805eac5 in instancemethod_call (func=0xb6ae687c, arg=0xb7db7234, 
    kw=0xfffffffc) at ../Objects/classobject.c:2447
#17 0x0805950c in PyObject_Call (func=0xb7b70c34, arg=0xfffffffc, 
    kw=0xfffffffc) at ../Objects/abstract.c:1756
#18 0x080afed7 in PyEval_CallObjectWithKeywords (func=0xfffffffc, 
    arg=0xb6ad8f54, kw=0x0) at ../Python/ceval.c:3425
#19 0x080594e3 in PyObject_CallObject (o=0xfffffffc, a=0xfffffffc)
    at ../Objects/abstract.c:1747
#20 0xb7a1a4f0 in initgobject ()
   from /usr/lib/python2.4/site-packages/gtk-2.0/gobject.so
#21 0xb79bd3a8 in IA__g_closure_invoke (closure=0x827b958, 
    return_value=0xfffffffc, n_param_values=4294967292, 
    param_values=0xfffffffc, invocation_hint=0xfffffffc) at gclosure.c:492
#22 0xb79cbb13 in signal_emit_unlocked_R (node=0x8342e10, detail=0, 
    instance=0x8345bf8, emission_return=0x0, instance_and_params=0xb38a4c34)
    at gsignal.c:2485
#23 0xb79cd150 in IA__g_signal_emit_valist (instance=0x8345bf8, signal_id=29, 
    detail=0, var_args=Variable "var_args" is not available.
) at gsignal.c:2244
#24 0xb79cd4c3 in IA__g_signal_emit (instance=0xfffffffc, 
    signal_id=4294967292, detail=4294967292) at gsignal.c:2288
#25 0xb6ac80fa in gst_fake_sink_render (bsink=0x8345bf8, buf=0x8383e88)
#26 0xb703a390 in gst_base_sink_preroll_queue_empty (basesink=0x8345bf8, 
    pad=0x83460f8) at gstbasesink.c:1196
#27 0xb703b029 in gst_base_sink_handle_object (basesink=0x8345bf8, 
    pad=0x83460f8, obj=0x8383e88) at gstbasesink.c:800
#28 0xb703cb89 in gst_base_sink_chain (pad=0x83460f8, buf=0x8383e88)
    at gstbasesink.c:1227
#29 0xb6f5049c in gst_pad_chain (pad=0x83460f8, buffer=0x8383e88)
    at gstpad.c:3092
#30 0xb6f50acf in gst_pad_push (pad=0x839fbb8, buffer=0x8383e88)
    at gstpad.c:3191
#31 0xb7044843 in gst_base_transform_chain (pad=0x839fae8, buffer=0x8383e88)
    at gstbasetransform.c:1275
#32 0xb6f5049c in gst_pad_chain (pad=0x839fae8, buffer=0x8383e88)
    at gstpad.c:3092
#33 0xb6f50acf in gst_pad_push (pad=0x839e100, buffer=0x8383e88)
    at gstpad.c:3191
#34 0xb7044843 in gst_base_transform_chain (pad=0x839d4f8, buffer=0x8383e88)
    at gstbasetransform.c:1275
#35 0xb6f5049c in gst_pad_chain (pad=0x839d4f8, buffer=0x8383e88)
    at gstpad.c:3092
#36 0xb6f426ba in gst_proxy_pad_do_chain (pad=0xfffffffc, buffer=0x8383e88)
    #37 0xb6f5049c in gst_pad_chain (pad=0x83a0af8, buffer=0x8383e88)
    at gstpad.c:3092
#38 0xb6f50acf in gst_pad_push (pad=0x83e21b0, buffer=0x8383e88)
    at gstpad.c:3191
#39 0xb6f5ab10 in gst_queue_loop (pad=0x83e21b0) at gstqueue.c:808
#40 0xb6f66fa8 in gst_task_func (task=0x83e3450, tclass=0x83665a8)
    at gsttask.c:186
#41 0xb79755a2 in g_thread_pool_thread_proxy (data=0x83664d8)
    at gthreadpool.c:114
#42 0xb79738c4 in g_thread_create_proxy (data=0x838a240) at gthread.c:564
#43 0xb7f8b361 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#44 0xb7ef7bde in clone () from /lib/tls/i686/cmov/libc.so.6
at gstghostpad.c:192

Thread 5:
#4  0xb7f8dc96 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/i686/cmov/libpthread.so.0
#5  0xb6f63221 in gst_system_clock_async_thread (clock=0x83e2f00)
    at gstsystemclock.c:253
#6  0xb79738c4 in g_thread_create_proxy (data=0x83a3718) at gthread.c:564

Thread 6:
#4  0xb7f8dc96 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/i686/cmov/libpthread.so.0
#5  0xb6d5792b in thread_entry (cast_to_state=0x834d918)
    at gnome-vfs-thread-pool.c:156
#6  0xb79738c4 in g_thread_create_proxy (data=0x834d990) at gthread.c:564

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