After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 327197 - Sound Juicer with Gst-0.10 segfaults
Sound Juicer with Gst-0.10 segfaults
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal normal
: 0.10.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks: 329326
 
 
Reported: 2006-01-16 12:21 UTC by Christian Fredrik Kalager Schaller
Modified: 2006-01-31 10:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
partial fix for reuse of oggmux (4.01 KB, patch)
2006-01-20 09:35 UTC, Jan Schmidt
none Details | Review

Description Christian Fredrik Kalager Schaller 2006-01-16 12:21:56 UTC
Sound juicer CVS using gst-0.10 segfaults. It looks to be on song change. trace bellow:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1233425504 (LWP 29143)]
0x003b1482 in gst_collect_pads_event (pad=0x968e358, event=0x95e9ac8)
    at gstcollectpads.c:619
619       GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event),
(gdb) apply thread all bt
Undefined command: "apply".  Try "help".
(gdb) thread apply all bt

Thread 3 (Thread -1233425504 (LWP 29143))

  • #0 gst_collect_pads_event
    at gstcollectpads.c line 619
  • #1 gst_pad_send_event
    at gstpad.c line 3672
  • #2 gst_pad_push_event
    at gstpad.c line 3560
  • #3 ??
  • #4 ??
  • #5 ??
  • #6 ??
  • #7 g_static_rec_mutex_lock
    from /usr/lib/libglib-2.0.so.0
  • #8 gst_pad_send_event
    at gstpad.c line 3672
  • #9 gst_pad_push_event
    at gstpad.c line 3560
  • #10 gst_pad_event_default
    at gstpad.c line 2695
  • #11 gst_base_transform_event
    at gstbasetransform.c line 1071
  • #12 gst_pad_send_event
    at gstpad.c line 3672
  • #13 gst_pad_push_event
    at gstpad.c line 3560
  • #14 gst_pad_event_default
    at gstpad.c line 2695
  • #15 gst_base_transform_event
    at gstbasetransform.c line 1071
  • #16 gst_pad_send_event
    at gstpad.c line 3672
  • #17 gst_proxy_pad_do_event
    at gstghostpad.c line 137
  • #18 gst_pad_send_event
    at gstpad.c line 3672
  • #19 gst_pad_push_event
    at gstpad.c line 3560
  • #20 ??
  • #21 ??
  • #22 ??
  • #23 ??
  • #24 ??
  • #25 ??
  • #26 ??
  • #27 ??
  • #28 ??
  • #29 ??
  • #30 ??

Comment 1 Sebastien Bacher 2006-01-19 15:10:34 UTC
Backtrace on Ubuntu:

0xb6c012b3      619       GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event),
(gdb) bt
  • #0 gst_collect_pads_event
    at gstcollectpads.c line 619
  • #1 gst_pad_send_event
    at gstpad.c line 3672
  • #2 gst_pad_push_event
    at gstpad.c line 3560
  • #3 gst_vorbisenc_sink_event
    at vorbisenc.c line 904
  • #4 gst_pad_send_event
    at gstpad.c line 3672
  • #5 gst_pad_push_event
    at gstpad.c line 3560
  • #6 gst_pad_event_default_dispatch
    at gstpad.c line 2695
  • #7 gst_pad_event_default
    at gstpad.c line 2745
  • #8 gst_base_transform_event
    at gstbasetransform.c line 1071
  • #9 gst_pad_send_event
    at gstpad.c line 3672
  • #10 gst_pad_push_event
    at gstpad.c line 3560
  • #11 gst_pad_event_default_dispatch
    at gstpad.c line 2695
  • #12 gst_pad_event_default
    at gstpad.c line 2745
  • #13 gst_base_transform_event
    at gstbasetransform.c line 1071
  • #14 gst_pad_send_event
    at gstpad.c line 3672
  • #15 gst_proxy_pad_do_event
    at gstghostpad.c line 137
  • #16 gst_pad_send_event
    at gstpad.c line 3672
  • #17 gst_pad_push_event
    at gstpad.c line 3560
  • #18 gst_queue_loop
    at gstqueue.c line 840
  • #19 gst_task_func
    at gsttask.c line 186
  • #20 g_thread_pool_thread_proxy
    at gthreadpool.c line 158
  • #21 g_thread_create_proxy
    at gthread.c line 582
  • #22 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #23 clone
    from /lib/tls/i686/cmov/libc.so.6

Comment 2 Jan Schmidt 2006-01-19 16:30:59 UTC
This seems to be a bug in the ogg muxer GStreamer element not clearing all state properly. 

I guess we're all encoding to OGG formats.

Rebuilding the pipeline between tracks by uncommenting line 204 in sj-extractor.c fixes it here, or not using OGG profiles, which is less good.

I'll work on fixing it in GStreamer, but it will need a gst-plugins-base release.
Comment 3 Ross Burton 2006-01-19 17:08:58 UTC
I've uncommented line 204 again in CVS.
Comment 4 Jan Schmidt 2006-01-20 09:35:46 UTC
Created attachment 57707 [details] [review]
partial fix for reuse of oggmux

This alleviates the bug in GStreamer, in conjunction with a commit to CVS core just now.

oggmux is still not going to work properly for being used multiple times to mux video+audio, but it'll work ok for SJ's use case.

Wim/MikeS will want to review this patch.
Comment 5 Jan Schmidt 2006-01-31 10:22:47 UTC
Fixed in CVS core:
        * libs/gst/base/gstcollectpads.c: (gst_collect_pads_is_collected):
        Don't loop infinitely if there are no buffers to present. Partially
        fixes #327197, but collectpads is just broken for reusing elements
        to do multiple encodes atm.

Fix in gst-plugins-base with bug #329326.

Fixes will be in 0.10.3 of core and 0.10.3 of gst-plugins-base.