GNOME Bugzilla – Bug 652883
gstreamer (or glib) crashes
Last modified: 2011-06-20 14:59:06 UTC
With libreoffice-3.3.2 I tried to read a .pps file with sound : crash To reproduce and simplify the problem I found a small package using gstreamer and crashing in the same environment : audition-1.4.0 Context Hardware : - PC with motherboard gigabyte, processor Intel I7-2600K Context Software : - slackware64-13.37 plus updates from current - kernel 2.6.38.7 - glib-2.29.8 (installation from sources) - gstreamer-0.10.35 (installation from sources) - gst-plugins at last level (gst-bad with a patch for mjpegtools-2.0.0) .gdbinit : directory /instsrc/src/glib-2.29.8 /instsrc/src/gstreamer-0.10.35 /instsrc/src/audition-0.1.6 cd /instsrc/src file /usr/bin/audition set args /tmp/watermatk.mp3 run bt info threads p node p node->mutatable_check_cache q gdbtrace : Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7881ee2 in type_check_is_value_type_U (type=140733200039584) at gtype.c:4084 4084 if (node && node->mutatable_check_cache)
+ Trace 227511
Remark : It seems the problem is specific to x86_64 : on the same PC, with the same software level, I have a pratition running in 32bits mode without problem.
- does it work with an older (stable) version of glib? (ie. 2.28.x) - does this also crash: gst-inspect-0.10 ? - does this also crash: gst-launch-0.10 playbin2 uri=file:///tmp/watermatk.mp3 ? - are you sure GStreamer was built against the right GLib headers (32-bit/64-bit)?
I had the problem with glib-2.28.6 from the slackware distribution It is the reason why I have installed various glib releases without success and now glib-2.29.8 I have also installed recent gstreamer and gst-plugins versions gst-inspect-0.10 crash also gst-lauch-0.10 playbin2... crash also I think GStreamer is built with the right GLib headers : - I don't have any GLib 32 bits on the 64bits partition - I have also a GLib-multilib from the slackware distribution but this packages has no includes I have also a problem in KDE with phonon, when the motor is gstreamer, a test of phonon crash I have not done any modification to the phonon distribution of Slackware This morning I have recompiled in this order - glib-2.29.8 - gstreamer-0.10.35 - audition and I have exactly the same crash
> gst-inspect-0.10 crash also Ok, that's quite bad. Let's start with that. Could you maybe install debugging symbols for both GStreamer and glib, and install valgrind, and then run $ valgrind gst-inspect-0.10 2>&1 | tee valgrind.log and attach the output? Also: $ GST_DEBUG=*:5 gst-inspect-0.10 2>dbg.log $ gzip dbg.log and attach the dbg.log.gz file? Have you by any chance tried previous versions of GStreamer as well?
Created attachment 190247 [details] make check in 64bits mode
Created attachment 190248 [details] valgrind from gst-inspect-0.10
Created attachment 190249 [details] debug de gst-inspect Note : GST_DEBUG=*.5 gst-inspect-0.10 gives a empty file So this file is the result of gst-inspect-0.10 >dbg.log 2>&1
I think the problem is in relation with glib2-compat32 from the Slackware distribution : - when I compile gstreamer in a 32bits partition, make check is ok - when I compile in a 64bits partition : - if glib2-compat32 is present, make check is in error (cf makechk.log.gz) - if I remove glib2-compat.. the make check is ok but after I have other problems I have as options to compile : LDFLAGS=-L/usr/lib64 , CFLAGS=-L/usr/lib64, CXXFLAGS=-L/usr/lib64 and I think some Makefile use -L/usr/lib instead -L/usr/lib64; as I seen that in other packages but in gstreamer there are many Makefile. I join - valgrind.log - dbg.log (GST_DEBUG=*.5 gst-inspect-0.10 >dbg.log give a void dbg.log) - makechk.log.gz Before I tested gstreamer-0.10.32 gstreamer-0.10.34... but some versions are incompatible with some gst-plugins.
Ok, it looks like a build issue then, as I originally suspected. Probably best to take that up with the slackware folks or whoever supplied glib2-compat.
OK, but I think there is a problem with gstreamer configure When ARCH=x86_64, the links should be with -L/usr/lib64 I have compiled from sources more than 100 packages, and I am sure someones are using glib and I did not have a problem like that. So I will try to write a script do modify all Makefiles to see if is really the origin of this problem. Thanks for your fast answer
> OK, but I think there is a problem with gstreamer configure > When ARCH=x86_64, the links should be with -L/usr/lib64 We just use whatever "pkg-config --libs glib-2.0" and "pkg-config --libs glib-2.0" tells us (and the same for libxml), afaik.
A substitution of -L/usr/lib by -L/usr/lib64 in all Makefile is not sufficient. I found a solution : I have removed glib2-compat32, gstreamer-compat32 and gst-plugins-compat32 from the slackware distribution. Then it was possible to compile gstreamer and plugins et now I have sound with audition and libreoffice. After that it is necessary to reinstall glib2-compat32 otherwise packages like Acrobat don't work. And gstreamer is always ok after that. The problem is it exists glib-2.0.pc in /usr/lib/pkgconfig for compat32 and in /usr/lib64/pkgconfig for glib2 64bits and I think configure takes the first one. Thanks for your assistance
> The problem is it exists glib-2.0.pc in /usr/lib/pkgconfig for compat32 and in > /usr/lib64/pkgconfig for glib2 64bits and I think configure takes the first > one. For what it's worth, you can set the PKG_CONFIG_PATH environment variable (to /usr/whatever/lib/pkgconfig) to make pkg-config pick up or prefer .pc files from a specific location.