Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 70886 - gstreamer-0.8.7 gst-register-0.8 segfault
Summary: gstreamer-0.8.7 gst-register-0.8 segfault
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: GStreamer package maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-11-11 16:20 UTC by Chris Irwin
Modified: 2005-02-05 06:36 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Irwin 2004-11-11 16:20:08 UTC
Running gst-register-0.8 caused a segfault while registering plugins. I narrowed this down to the files libgstmodplug.so and/or libgstmodplug.la in /usr/lib/gstreamer-0.8/ . ldd reports libgstmodplug.so has all required links. 

Removing and remerging gstreamer and gst-plugins (only, leaving other plugins out for now) still causes gst-register-0.8 to fail.

After some googling, I came across the following entry on the freebsd-gnome mailing list. 
http://lists.freebsd.org/pipermail/freebsd-gnome/2004-September/008265.html

I first tried recomiling without my --march setting, and it continued to have the same issue. 

Recompiling gstreamer and gst-plugins with CFLAGS="" and CXXFLAGS="" corrected the issue. I've readded all other required gst-plugins (-alsa, -ogg, etc) with the same cflags settings and everything is working as expected.

Note that this is an entirely ~x86 system.

Reproducible: Always
Steps to Reproduce:
1. emerge gstreamer
2. gst-register-0.8
3. 

Actual Results:  
gst-register segfaults.

Expected Results:  
gst-register registers all plugins, and I can listen to music.


Portage 2.0.51-r3 (gcc34-x86-2004.2, gcc-3.4.3, glibc-2.3.4.20041102-r0,
2.6.8-ck4 i686)
=================================================================
System uname: 2.6.8-ck4 i686 Unknown CPU Typ
Gentoo Base System version 1.6.6
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.15.92.0.2-r1
Headers:  sys-kernel/linux26-headers-2.6.8.1-r1
Libtools: sys-devel/libtool-1.5.2-r7
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-Os -march=athlon-xp -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3/share/config /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-Os -march=athlon-xp -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distlocks fixpackages sandbox"
GENTOO_MIRRORS="http://mirrors.tds.net/gentoo ftp://ftp.ndlug.nd.edu/pub/gentoo/
http://mirror.datapipe.net/gentoo http://adelie.polymtl.ca/
ftp://mirrors.tds.net/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X acpi aim alsa apm avi berkdb bindist bitmap-fonts bonobo cdinstall
cdparanoia cdr crypt cups dga divx4linux dvd encode esd f77 fam foomaticdb
fortran gdbm gif gnome gstreamer gtk gtk2 icq imagemagick imlib jpeg libg++
libwww lm_sensors mad mikmod mmx mono motif mozilla moznocompose moznoirc
moznomail mozsvg mpeg mpeg4 mplayer msn ncurses nls no_wxgtk1 nowin nptl
offensive oggvorbis opengl oss pam pda pdflib perl png python quicktime radeon
readline samba sdl slang spell sse ssl svga tcpd tiff truetype unicode usb v4l
wxwindows x86 xml2 xosd xrandr xv yahoo zlib"
Comment 1 Chase Covello 2004-11-15 20:07:55 UTC
I'd like to add that I ran into the same problem on ~x86 and CFLAGS didn't fix it, but switching to gcc-3.3.4 did. Is this a problem with gstreamer or gcc?
Comment 2 Chris Irwin 2004-11-15 21:07:26 UTC
I'm on gcc 3.4.3 when I tried this.
Comment 3 foser (RETIRED) gentoo-dev 2004-11-16 02:56:45 UTC
it might be '-Os' with a certain compiler, to check that the reporter should compile with say gcc-3.3 or gcc-2
Comment 4 Lisa Seelye (RETIRED) gentoo-dev 2004-12-26 20:18:45 UTC
I just tried this.

With gcc 3.4.3,
CFLAGS="-march=pentium4 -Os -pipe"  -- Failure
CFLAGS="-march=pentium4 -O -pipe"   -- Failure
CFLAGS=""                           -- Failure

with gcc 3.3.4
CFLAGS="-march=pentium4 -Os -pipe"  -- Failure

Emerge info:
Portage 2.0.51-r8 (default-linux/x86/2004.3, gcc-3.3.4, glibc-2.3.4.20041102-r0, 2.6.8-gentoo-r3 i686)
=================================================================
System uname: 2.6.8-gentoo-r3 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz
Gentoo Base System version 1.6.8
Python:              dev-lang/python-2.3.4 [2.3.4 (#1, Dec 26 2004, 11:36:30)]
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
dev-lang/python:     2.3.4
sys-devel/autoconf:  2.59-r6, 2.13
sys-devel/automake:  1.8.5-r2, 1.5, 1.4_p6, 1.6.3, 1.9.3, 1.7.9
sys-devel/binutils:  2.15.92.0.2-r2
sys-devel/libtool:   1.5.10-r2
virtual/os-headers:  2.6.8.1-r1
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=pentium4 -Os -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium4 -Os -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig cvs distcc distlocks nostrip sandbox sfperms userpriv"
GENTOO_MIRRORS="http://mirrors.acm.cs.rpi.edu/gentoo/ http://gentoo.mirrors.pair.com/ http://mirrors.tds.net/gentoo http://ftp.gentoo.or.kr/"
MAKEOPTS="-j6"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/home/gentoo/tmp"
PORTDIR="/home/gentoo/portage-rsync"
PORTDIR_OVERLAY="/home/gentoo/portage"
SYNC="rsync://www.thedoh.com/gentoo-portage"
USE="x86 3dnow X acl acpi aim alsa audiofile avi bcmath berkdb bidi bitmap-fonts bonobo bzlib calendar cdb cdr crypt cscope csope ctype curl dio divx4linux dvd dvdr dvdread encode esd ethereal evo exif fam flac flash foomaticdb fortran freetds freewnn ftp gb gd gdbm gif gnome gpm gstreamer gtk gtk2 icq imagemagick imlib innodb ipv6 jpeg ladcca lcms ldap lesstif libg++ libwww mad maildir mbox mcal mikmod mime ming mjpeg mmx mng motif moznocompose moznoirc moznomail moznoxfg mpeg mpi msn mysql ncurses nls nptl offensive oggvorbis opengl oscar oss pam pcre pdflib perl png pnp python qt quicktime readline samba sasl sdl simplexml slang snmp soap speex spell sse ssl svga tcltk tcpd tidy tiff truetype unicode usb xine xml xml2 xmlrpc xmms xsl xv xvid yahoo zlib"

gstreamer was compiled with +debug for the backtrace.



Backtrace:

Starting program: /usr/bin/gst-register-0.8 
[Thread debugging using libthread_db enabled]
[New Thread 1077773024 (LWP 17793)]
Rebuilding global_registry (/var/lib/cache/gstreamer-0.8/registry.xml) ...
Added plugin decodebin with 1 feature.
Added plugin playbin with 1 feature.
Added plugin alphacolor with 1 feature.
Added plugin gstmultifilesink with 1 feature.
Added plugin alsa with 3 features.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1077773024 (LWP 17793)]
0x407e3e00 in CzCUBICSPLINE::CzCUBICSPLINE ()
   from /usr/lib/gstreamer-0.8/libgstmodplug.so

(gdb) bt
#0  0x407e3e00 in CzCUBICSPLINE::CzCUBICSPLINE ()
   from /usr/lib/gstreamer-0.8/libgstmodplug.so
#1  0x407eb351 in X86_StereoFill ()
   from /usr/lib/gstreamer-0.8/libgstmodplug.so
#2  0x407fbdb5 in ModPlug_SetSettings ()
   from /usr/lib/gstreamer-0.8/libgstmodplug.so
#3  0x407d7af8 in _init () from /usr/lib/gstreamer-0.8/libgstmodplug.so
#4  0x4000abac in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2
#5  0x4000ac5d in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2
#6  0x403a8bf0 in getutmpx () from /lib/tls/libc.so.6
#7  0x4000aa41 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2
#8  0x403a9129 in _dl_open () from /lib/tls/libc.so.6
#9  0x40269d58 in ?? () from /lib/libdl.so.2
#10 0xfffffffe in ?? ()
#11 0x0052e0e4 in ?? ()
#12 0xbffff14c in ?? ()
#13 0x40080efe in __PRETTY_FUNCTION__.2 () from /usr/lib/libgstreamer-0.8.so.1
#14 0x403aa6e9 in __libc_dlclose () from /lib/tls/libc.so.6
#15 0x4000aa41 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2
#16 0x4026a220 in dlerror () from /lib/libdl.so.2
#17 0x40269da0 in dlopen () from /lib/libdl.so.2
#18 0x402676ff in g_module_open () from /usr/lib/libgmodule-2.0.so.0
#19 0x4005a00a in gst_plugin_check_file (
---Type <return> to continue, or q <return> to quit---
    filename=0x806e200 "/usr/lib/gstreamer-0.8/libgstmodplug.so", error=0x0)
    at gstplugin.c:333
#20 0x4005a5f5 in gst_plugin_load_file (
    filename=0x806e200 "/usr/lib/gstreamer-0.8/libgstmodplug.so", error=0x0)
    at gstplugin.c:381
#21 0x40077989 in gst_xml_registry_rebuild (registry=0x80524a8)
    at gstxmlregistry.c:1432
#22 0x4006da90 in gst_registry_rebuild (registry=0x80524a8)
    at gstregistry.c:187
#23 0x08048d91 in main (argc=1, argv=0xbffff4b4) at gst-register.c:129
Comment 5 foser (RETIRED) gentoo-dev 2005-01-06 06:40:43 UTC
so in short an -Os problem with some compilers ?
Comment 6 Duarte Henriques 2005-01-07 11:42:51 UTC
I also had this problem, using gcc 3.4.3 and -Os
the problem was solved by replacing -Os for -O2, still using gcc 3.4.3

So, for me:
With gcc 3.4.3,
CFLAGS="-march=athlonxp -Os -pipe"  -- Failure
CFLAGS="-march=athlonxp -O2 -pipe"  -- Success
Comment 7 Cesar Talon 2005-01-10 08:30:00 UTC
The same happens here with gstreamer-0.8.8. The change of -Os to -O2 fixed the problem with segmentation faults.

The problem seems to be in gst-plugins and not in gstreamer. At least on my case just re-emerging gst-plugins with -O2 fixed everything without emerging again gstreamer.

I'm using gcc-3.4.3, didn't try with other versions.
Comment 8 Eric Shattow 2005-01-29 12:59:00 UTC
gcc 3.4.x bug.   you should report it upstream.

http://gcc.gnu.org/bugzilla/
Comment 9 foser (RETIRED) gentoo-dev 2005-02-05 06:36:43 UTC
added an Os->O2 statement in 0.8.8 to be on the safe side for now