[gstreamer-bugs] [Bug 556986] New: pulsesink deadlocks when raising an error

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Sun Oct 19 12:39:36 PDT 2008


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=556986

  GStreamer | gst-plugins-good | Ver: 0.10.x
           Summary: pulsesink deadlocks when raising an error
           Product: GStreamer
           Version: 0.10.x
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: sjoerd at luon.net
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


To reproduce:
  $ gst-launch audiotestsrc ! pulsesink
- Kill you pulse server
- gst-launch tries to go into pause but hangs there

Backtrace:
arting program: /usr/bin/gst-launch-0.10 audiotestsrc \! pulsesink
[Thread debugging using libthread_db enabled]
[New Thread 0x480231a0 (LWP 23892)]
[New Thread 0x489e24d0 (LWP 23895)]
Setting pipeline to PAUSED ...
[New Thread 0x491e24d0 (LWP 23896)]
[Thread 0x491e24d0 (LWP 23896) exited]
[New Thread 0x491e24d0 (LWP 23897)]
Pipeline is PREROLLING ...
[New Thread 0x4d9e34d0 (LWP 23898)]
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
ERROR: from element /GstPipeline:pipeline0/GstPulseSink:pulsesink0:
Disconnected: Conn    ection terminated
Additional debug info:
pulsesink.c(684): gst_pulsesink_write ():
/GstPipeline:pipeline0/GstPulseSink:pulsesin    k0
Execution ended after 3680822000 ns.
Setting pipeline to PAUSED ...


^C
Program received signal SIGINT, Interrupt.
[Switching to Thread 0x480231a0 (LWP 23892)]
0x0fd1ebc8 in pthread_mutex_lock () from /lib/libpthread.so.0
(gdb) bt
#0  0x0fd1ebc8 in pthread_mutex_lock () from /lib/libpthread.so.0
#1  0x0f626acc in ?? () from /usr/lib/libpulse.so.0
#2  0x0f5fe1f0 in pa_threaded_mainloop_lock () from /usr/lib/libpulse.so.0
#3  0x0f6c26ec in gst_pulsesink_reset (asink=0x10104078) at pulsesink.c:777
#4  0x0f682ea0 in ?? () from /usr/lib/libgstaudio-0.10.so.0
#5  0x0f68e448 in ?? () from /usr/lib/libgstaudio-0.10.so.0
#6  0x0f68fbe8 in gst_ring_buffer_pause () from /usr/lib/libgstaudio-0.10.so.0
#7  0x0f68a794 in ?? () from /usr/lib/libgstaudio-0.10.so.0
#8  0x0f6c4a0c in gst_pulsesink_change_state (element=0x10104078, 
    transition=269500536) at pulsesink.c:928
#9  0x0ff4123c in gst_element_change_state (element=<value optimized out>, 
    transition=<value optimized out>) at gstelement.c:2427
#10 0x0ff44c7c in gst_element_set_state_func (element=0x10104078, 
    state=GST_STATE_PAUSED) at gstelement.c:2377
#11 0x0ff401c4 in gst_element_set_state (element=0x10104078,
state=GST_STATE_PAUSED)
    at gstelement.c:2280
#12 0x0ff2e9ac in gst_bin_change_state_func (element=0x10108090, 
    transition=GST_STATE_CHANGE_PLAYING_TO_PAUSED) at gstbin.c:1932
#13 0x0ff6931c in gst_pipeline_change_state (element=0x10108090, 
    transition=GST_STATE_CHANGE_PLAYING_TO_PAUSED) at gstpipeline.c:463
#14 0x0ff4123c in gst_element_change_state (element=<value optimized out>, 
    transition=<value optimized out>) at gstelement.c:2427
#15 0x0ff44c7c in gst_element_set_state_func (element=0x10108090, 
    state=GST_STATE_PAUSED) at gstelement.c:2377
#16 0x0ff401c4 in gst_element_set_state (element=0x10108090,
state=GST_STATE_PAUSED)
    at gstelement.c:2280
#17 0x100050d4 in main (argc=4, argv=0xbfda6484) at gst-launch.c:785
(gdb) thread apply all bt

Thread 5 (Thread 0x4d9e34d0 (LWP 23898)):
#0  0x0fd25d40 in __lll_lock_wait () from /lib/libpthread.so.0
#1  0x0fd1edb4 in pthread_mutex_lock () from /lib/libpthread.so.0
#2  0x0ff25f34 in gst_object_get_name (object=0x10104078) at gstobject.c:702
#3  0x0ff26170 in gst_object_get_path_string (object=<value optimized out>)
    at gstobject.c:1103
#4  0x0ff41a18 in gst_element_message_full (element=0x10104078, 
    type=GST_MESSAGE_ERROR, domain=871, code=1, 
    text=0x101034e0 "Disconnected: Connection terminated", debug=0x0, 
    file=0xf6caf0c "pulsesink.c", function=0xf6cad20 "gst_pulsesink_write",
line=684)
    at gstelement.c:1663
#5  0x0f6c3458 in gst_pulsesink_write (asink=<value optimized out>, 
    data=<value optimized out>, length=<value optimized out>) at
pulsesink.c:684
#6  0x0f683668 in ?? () from /usr/lib/libgstaudio-0.10.so.0
#7  0x0fdcd12c in g_thread_create_proxy (data=0x372)
    at /build/buildd/glib2.0-2.16.6/glib/gthread.c:635
#8  0x0fd1ce34 in start_thread () from /lib/libpthread.so.0
#9  0x0fc78b40 in clone () from /lib/libc.so.6
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 4 (Thread 0x491e24d0 (LWP 23897)):
#0  0x0fd25d40 in __lll_lock_wait () from /lib/libpthread.so.0
#1  0x0fd1edb4 in pthread_mutex_lock () from /lib/libpthread.so.0
#2  0x0f691494 in gst_ring_buffer_is_acquired () from
/usr/lib/libgstaudio-0.10.so.0
#3  0x0f6869cc in ?? () from /usr/lib/libgstaudio-0.10.so.0
#4  0x0f748d78 in gst_base_sink_render_object (basesink=0x10104078,
pad=0x100f98d8, 
    obj=0x1010ec10) at gstbasesink.c:2189
#5  0x0f749b50 in gst_base_sink_queue_object_unlocked (basesink=0x10104078, 
    pad=0x100f98d8, obj=0x1010ec10, prerollable=<value optimized out>)
    at gstbasesink.c:2384
---Type <return> to continue, or q <return> to quit---
#6  0x0f74a1c0 in gst_base_sink_chain_unlocked (basesink=0x10104078,
pad=0x100f98d8, 
    buf=0x1010ec10) at gstbasesink.c:2728
#7  0x0f74a694 in gst_base_sink_chain (pad=0x100f98d8, buf=0x1010ec10)
    at gstbasesink.c:2769
#8  0x0ff5f83c in gst_pad_chain_unchecked (pad=0x100f98d8, buffer=0x1010ec10)
    at gstpad.c:3877
#9  0x0ff6090c in gst_pad_push (pad=0x100f9818, buffer=0x1010ec10) at
gstpad.c:4045
#10 0x0f7534bc in gst_base_src_loop (pad=0x100f9818) at gstbasesrc.c:2187
#11 0x0ff87834 in gst_task_func (task=0x1010c420, tclass=<value optimized out>)
    at gsttask.c:192
#12 0x0fdcfd64 in g_thread_pool_thread_proxy (data=<value optimized out>)
    at /build/buildd/glib2.0-2.16.6/glib/gthreadpool.c:265
#13 0x0fdcd12c in g_thread_create_proxy (data=0x10107fc0)
    at /build/buildd/glib2.0-2.16.6/glib/gthread.c:635
#14 0x0fd1ce34 in start_thread () from /lib/libpthread.so.0
#15 0x0fc78b40 in clone () from /lib/libc.so.6
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 2 (Thread 0x489e24d0 (LWP 23895)):
#0  0x0fc6d07c in poll () from /lib/libc.so.6
#1  0x0f5fe74c in ?? () from /usr/lib/libpulse.so.0
#2  0x0f5efdd0 in pa_mainloop_poll () from /usr/lib/libpulse.so.0
#3  0x0f5f148c in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
#4  0x0f5f1590 in pa_mainloop_run () from /usr/lib/libpulse.so.0
#5  0x0f5fe4ec in ?? () from /usr/lib/libpulse.so.0
#6  0x0f6276f4 in ?? () from /usr/lib/libpulse.so.0
#7  0x0fd1ce34 in start_thread () from /lib/libpthread.so.0
#8  0x0fc78b40 in clone () from /lib/libc.so.6
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 1 (Thread 0x480231a0 (LWP 23892)):
---Type <return> to continue, or q <return> to quit---
#0  0x0fd1ebc8 in pthread_mutex_lock () from /lib/libpthread.so.0
#1  0x0f626acc in ?? () from /usr/lib/libpulse.so.0
#2  0x0f5fe1f0 in pa_threaded_mainloop_lock () from /usr/lib/libpulse.so.0
#3  0x0f6c26ec in gst_pulsesink_reset (asink=0x10104078) at pulsesink.c:777
#4  0x0f682ea0 in ?? () from /usr/lib/libgstaudio-0.10.so.0
#5  0x0f68e448 in ?? () from /usr/lib/libgstaudio-0.10.so.0
#6  0x0f68fbe8 in gst_ring_buffer_pause () from /usr/lib/libgstaudio-0.10.so.0
#7  0x0f68a794 in ?? () from /usr/lib/libgstaudio-0.10.so.0
#8  0x0f6c4a0c in gst_pulsesink_change_state (element=0x10104078, 
    transition=269500536) at pulsesink.c:928
#9  0x0ff4123c in gst_element_change_state (element=<value optimized out>, 
    transition=<value optimized out>) at gstelement.c:2427
#10 0x0ff44c7c in gst_element_set_state_func (element=0x10104078, 
    state=GST_STATE_PAUSED) at gstelement.c:2377
#11 0x0ff401c4 in gst_element_set_state (element=0x10104078,
state=GST_STATE_PAUSED)
    at gstelement.c:2280
#12 0x0ff2e9ac in gst_bin_change_state_func (element=0x10108090, 
    transition=GST_STATE_CHANGE_PLAYING_TO_PAUSED) at gstbin.c:1932
#13 0x0ff6931c in gst_pipeline_change_state (element=0x10108090, 
    transition=GST_STATE_CHANGE_PLAYING_TO_PAUSED) at gstpipeline.c:463
#14 0x0ff4123c in gst_element_change_state (element=<value optimized out>, 
    transition=<value optimized out>) at gstelement.c:2427
#15 0x0ff44c7c in gst_element_set_state_func (element=0x10108090, 
    state=GST_STATE_PAUSED) at gstelement.c:2377
#16 0x0ff401c4 in gst_element_set_state (element=0x10108090,
state=GST_STATE_PAUSED)
    at gstelement.c:2280
#17 0x100050d4 in main (argc=4, argv=0xbfda6484) at gst-launch.c:785
(gdb) 


This is with -plugins-good 0.10.10.3


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=556986.




More information about the Gstreamer-bugs mailing list