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 652883 - gstreamer (or glib) crashes
gstreamer (or glib) crashes
Status: RESOLVED NOTGNOME
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.10.35
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-06-18 06:52 UTC by jean.ribiere
Modified: 2011-06-20 14:59 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
make check in 64bits mode (3.47 KB, application/octet-stream)
2011-06-20 08:33 UTC, jean.ribiere
Details
valgrind from gst-inspect-0.10 (4.16 KB, application/octet-stream)
2011-06-20 08:34 UTC, jean.ribiere
Details
debug de gst-inspect (576 bytes, application/octet-stream)
2011-06-20 08:36 UTC, jean.ribiere
Details

Description jean.ribiere 2011-06-18 06:52:22 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)
  • #0 type_check_is_value_type_U
    at gtype.c line 4084
  • #1 g_type_check_is_value_type
    at gtype.c line 4120
  • #2 g_signal_newv
    at gsignal.c line 1566
  • #3 g_signal_new_valist
    at gsignal.c line 1700
  • #4 g_signal_new
    at gsignal.c line 1334
  • #5 gst_object_class_init
    at gstobject.c line 203
  • #6 gst_object_class_intern_init
    at gstobject.c line 174
  • #7 type_class_init_Wm
    at gtype.c line 2212
  • #8 g_type_class_ref
    at gtype.c line 2912
  • #9 init_post
    at gst.c line 670
  • #10 g_option_context_parse
    at goption.c line 1987
  • #11 gst_init_check
    at gst.c line 439
  • #12 gst_init
    at gst.c line 493
  • #13 _vala_main
    at /instsrc/src/audition-0.1.6/src/audition.c line 1126
  • #14 main
    at /instsrc/src/audition-0.1.6/src/audition.c line 1161

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.
Comment 1 Tim-Philipp Müller 2011-06-18 11:03:36 UTC
- 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)?
Comment 2 jean.ribiere 2011-06-19 11:48:46 UTC
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
Comment 3 Tim-Philipp Müller 2011-06-19 19:04:50 UTC
> 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?
Comment 4 jean.ribiere 2011-06-20 08:33:02 UTC
Created attachment 190247 [details]
make check in 64bits mode
Comment 5 jean.ribiere 2011-06-20 08:34:08 UTC
Created attachment 190248 [details]
valgrind from gst-inspect-0.10
Comment 6 jean.ribiere 2011-06-20 08:36:23 UTC
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
Comment 7 jean.ribiere 2011-06-20 08:38:34 UTC
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.
Comment 8 Tim-Philipp Müller 2011-06-20 08:58:34 UTC
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.
Comment 9 jean.ribiere 2011-06-20 12:13:57 UTC
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
Comment 10 Tim-Philipp Müller 2011-06-20 12:29:26 UTC
> 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.
Comment 11 jean.ribiere 2011-06-20 14:51:28 UTC
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
Comment 12 Tim-Philipp Müller 2011-06-20 14:59:06 UTC
> 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.