[gstreamer-bugs] [Bug 589849] New: [pulsesink][regression] Segfault when seeking at the end of file

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Mon Jul 27 03:24:32 PDT 2009


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

  GStreamer | gst-plugins-good | Ver: git
           Summary: [pulsesink][regression] Segfault when seeking at the end
                    of file
           Product: GStreamer
           Version: git
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: damien.lespiau at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


I'm playing a theora/flac video, and doing a seek to the end of the file with: 

gst_element_seek (priv->playbin,
                    1.0,
                    GST_FORMAT_TIME,
                    GST_SEEK_FLAG_FLUSH,
                    GST_SEEK_TYPE_SET,
                    position,
                    0, 0);

where position is the duration of the video.

* This works with the trio gstreamer git/gst-plugins-base git/gst-plugins-good
0.10.14
* It segfaults with the trio gstreamer git/gst-plugins-base
git/gst-plugins-good 0.10.15
* It segfaults with the trio gstreamer git/gst-plugins-base
git/gst-plugins-good git

So, if I haven't mix things with the git checkouts and make installs it means
the regression is due to a change in pulsesink, introduced between 0.10.14 and
0.10.15. (yes, ready for a git bisect, will do it later)

The segfault has the following backtrace.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb22eab90 (LWP 865)]
memcpy () at ../sysdeps/i386/i586/memcpy.S:118
118     L(1):   rep; movsb
Current language:  auto; currently asm
(gdb) bt
#0  memcpy () at ../sysdeps/i386/i586/memcpy.S:118
#1  0xb2e25b19 in gst_pulseringbuffer_commit (buf=0x8e306d0, 
    sample=0xb22e95e8, data=0x18bfc <Address 0x18bfc out of bounds>, 
    in_samples=-25343, out_samples=25343, accum=0xb22e9604) at pulsesink.c:1232
#2  0xb71100a1 in gst_ring_buffer_commit_full (buf=0x8e306d0, 
    sample=0xb22e95e8, data=0x18bfc <Address 0x18bfc out of bounds>, 
    in_samples=-25343, out_samples=-25343, accum=0xb22e9604)
    at gstringbuffer.c:1727
#3  0xb71053b1 in gst_base_audio_sink_render (bsink=0x8e2bba0, buf=0x84a1990)
    at gstbaseaudiosink.c:1495
#4  0xb736d7a0 in gst_base_sink_render_object (basesink=0x8e2bba0, 
    pad=0x8e3c010, is_list=0, obj=0x84a1990) at gstbasesink.c:2711
#5  0xb736ef17 in gst_base_sink_queue_object_unlocked (basesink=0x8e2bba0, 
    pad=0x8e3c010, is_list=0, obj=0x84a1990, prerollable=1)
    at gstbasesink.c:2952
#6  0xb7370fbc in gst_base_sink_chain_unlocked (basesink=0x8e2bba0, 
    pad=0x8e3c010, is_list=0, obj=0x84a1990) at gstbasesink.c:3322
#7  0xb7371524 in gst_base_sink_chain_main (basesink=0x8e2bba0, pad=0x8e3c010, 
    is_list=0, obj=0x84a1990) at gstbasesink.c:3360
#8  0xb72f08d7 in gst_pad_chain_data_unchecked (pad=0x8e3c010, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4057
#9  0xb72f14e9 in gst_pad_push_data (pad=0x8d470e8, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4287
#10 0xb72e03cd in gst_proxy_pad_do_chain (pad=0x8e3dbd8, buffer=0x84a1990)
    at gstghostpad.c:179
#11 0xb72f08d7 in gst_pad_chain_data_unchecked (pad=0x8e3dbd8, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4057
#12 0xb72f14e9 in gst_pad_push_data (pad=0x8d476d0, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4287
#13 0xb72e03cd in gst_proxy_pad_do_chain (pad=0x8de5ca0, buffer=0x84a1990)
    at gstghostpad.c:179
#14 0xb72f08d7 in gst_pad_chain_data_unchecked (pad=0x8de5ca0, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4057
#15 0xb72f14e9 in gst_pad_push_data (pad=0x8e046e8, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4287
#16 0xb72e03cd in gst_proxy_pad_do_chain (pad=0x8d46a58, buffer=0x84a1990)
    at gstghostpad.c:179
#17 0xb72f08d7 in gst_pad_chain_data_unchecked (pad=0x8d46a58, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4057
#18 0xb72f14e9 in gst_pad_push_data (pad=0x8d80f18, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4287
#19 0xb738592f in gst_base_transform_chain (pad=0x8de5578, buffer=0x84a1990)
    at gstbasetransform.c:2039
#20 0xb72f08d7 in gst_pad_chain_data_unchecked (pad=0x8de5578, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4057
#21 0xb72f14e9 in gst_pad_push_data (pad=0x8de54b0, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4287
#22 0xb738592f in gst_base_transform_chain (pad=0x8e3b718, buffer=0x84a1990)
    at gstbasetransform.c:2039
#23 0xb72f08d7 in gst_pad_chain_data_unchecked (pad=0x8e3b718, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4057
#24 0xb72f14e9 in gst_pad_push_data (pad=0x8d80e50, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4287
#25 0xb738592f in gst_base_transform_chain (pad=0x8d49268, buffer=0x84a1990)
    at gstbasetransform.c:2039
#26 0xb72f08d7 in gst_pad_chain_data_unchecked (pad=0x8d49268, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4057
#27 0xb72f14e9 in gst_pad_push_data (pad=0x8e04100, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4287
#28 0xb72e03cd in gst_proxy_pad_do_chain (pad=0x8e3daf0, buffer=0x84a1990)
    at gstghostpad.c:179
#29 0xb72f08d7 in gst_pad_chain_data_unchecked (pad=0x8e3daf0, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4057
#30 0xb72f14e9 in gst_pad_push_data (pad=0x8d808d8, is_buffer=1, 
    data=0x84a1990) at gstpad.c:4287
#31 0xb570ec56 in gst_queue_push_one () at gstqueue.c:1047
#32 gst_queue_loop (pad=0x8d808d8) at gstqueue.c:1149
#33 0xb7316913 in gst_task_func (task=0xb4bb1110) at gsttask.c:234
#34 0xb7318297 in default_func (tdata=0x8f660a0, pool=0x840d420)
    at gsttaskpool.c:70
#35 0xb7709c17 in g_thread_pool_thread_proxy (data=0x840d098)
    at gthreadpool.c:265
#36 0xb7708d6c in g_thread_create_proxy (data=0xb0905080) at gthread.c:635
#37 0xb76a33d0 in start_thread (arg=0xb22eab90) at pthread_create.c:297
#38 0xb760c2de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

(gdb) bt full
#0  memcpy () at ../sysdeps/i386/i586/memcpy.S:118
No locals.
#1  0xb2e25b19 in gst_pulseringbuffer_commit (buf=0x8e306d0, 
    sample=0xb22e95e8, data=0x18bfc <Address 0x18bfc out of bounds>, 
    in_samples=-25343, out_samples=25343, accum=0xb22e9604) at pulsesink.c:1232
        d = (
    guint8 *) 0xaee00018
"\b\004д\210�ش�\237��\210�شZp�\235��\2337\n���\233����\233u\2355�N�,��\205n\025��t��=��\216m��z]m\227\214ٽ\023�Q�[��k�\235��t٢�N���\034��n�*�M\235;[\205�����~\2355��l۾\\ZZ\0214\234�-�Y����6}�Y�^�i��6\235��ۼZ�-^wQ�\2355�\033N\235�\va6�XwN�\233\vN�\213N���9��\vmE\207wM�t�vºk�v�4ݰ����t�E"...
        d_end = (guint8 *) 0xaee18c14 "i\034"
        avail = <value optimized out>
        towrite = 101372
        psink = (GstPulseSink *) 0x8e2bba0
        result = <value optimized out>
        data_end = (guint8 *) 0xfffffffc <Address 0xfffffffc out of bounds>
        toprocess = (gint *) 0xb22e91c0
        inr = -25344
        outr = 25342
        bps = 4
        offset = 2239536
        diff = -128792
        bufsize = 8820
        __FUNCTION__ = "gst_pulseringbuffer_commit"
#2  0xb71100a1 in gst_ring_buffer_commit_full (buf=0x8e306d0, 
    sample=0xb22e95e8, data=0x18bfc <Address 0x18bfc out of bounds>, 
    in_samples=-25343, out_samples=-25343, accum=0xb22e9604)
    at gstringbuffer.c:1727
        res = <value optimized out>
        __PRETTY_FUNCTION__ = "gst_ring_buffer_commit_full"
#3  0xb71053b1 in gst_base_audio_sink_render (bsink=0x8e2bba0, buf=0x84a1990)
    at gstbaseaudiosink.c:1495
        in_offset = 13153535
        time = 596532244897
        stop = 595382857142
        render_start = 559884
        render_stop = 4295501837
        sample_offset = 559884
        ts_offset = 0
        sink = (GstBaseAudioSink *) 0x8e2bba0
        ringbuf = (GstRingBuffer *) 0x8e306d0
        diff = 12884901889
        align = <value optimized out>
        ctime = 596532244897
        cstop = 595382857142
        data = (guint8 *) 0x18bfc <Address 0x18bfc out of bounds>
        size = <value optimized out>
        samples = 4294941953
        written = <value optimized out>
        bps = 4
        accum = 0
        out_samples = -25343
        render_delay = 0
        latency = <value optimized out>
        clock = (GstClock *) 0xb4bd3098
        slaved = 0
        align_next = 1
        ret = <value optimized out>
        clip_seg = {rate = 8.4879835912278729e-314, 
  abs_rate = -1.7936496817698367e-41, format = GST_FORMAT_TIME, 
  flags = 3077202800, start = 596532244897, stop = 596532244897, 
  time = -5230288170805979688, accum = 541165879296, last_stop = 0, 
---Type <return> to continue, or q <return> to quit--- 
  duration = -1, applied_rate = 1.5186348836408821e-314, 
  _gst_reserved = "<_j�a\003\000"}
        __FUNCTION__ = "gst_base_audio_sink_render"
#4  0xb736d7a0 in gst_base_sink_render_object (basesink=0x8e2bba0, 
    pad=0x8e3c010, is_list=0, obj=0x84a1990) at gstbasesink.c:2711
        do_qos = 0
        ret = <value optimized out>
        bclass = (GstBaseSinkClass *) 0x8e0a258
        late = 0
        step_end = 0
        sync_obj = (gpointer) 0x84a1990
        priv = (GstBaseSinkPrivate *) 0x8e2bd88
        __PRETTY_FUNCTION__ = "gst_base_sink_render_object"


-- 
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=589849.




More information about the Gstreamer-bugs mailing list