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 639800 - Volume changing intermittently triggers segfault
Volume changing intermittently triggers segfault
Status: RESOLVED DUPLICATE of bug 640872
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.26
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-01-17 23:31 UTC by Cefn Hoile
Modified: 2011-02-12 17:36 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Cefn Hoile 2011-01-17 23:31:10 UTC
As discussed in this thread...

http://groups.google.com/group/gstreamer-java/browse_thread/thread/8bfe93605068e10

...I experience an intermittent segmentation fault when setting volume against a streaming Playbin2.

I have now recreated this using both gstreamer-java and pygst bindings, so I'm pretty confident it's in Gstreamer.

Any suggestions for workarounds or perhaps this is a bug introduced by my naive use of the libraries. Code, full Java error reports and crash logs are detailed in the thread linked above.

Is there a PPA for Ubuntu which I can use to get newer versions of gstreamer-plugins-good (which I believe contains playbin2). I've currently got the following installed...

gstreamer-tools 0.10.31.3-1~lucid1
gstreamer0.10-alsa 0.10.31.3-1~lucid1
gstreamer0.10-esd 0.10.26.3-1~lucid1
gstreamer0.10-ffmpeg 0.10.11-1~lucid1
gstreamer0.10-gnonlin 0.10.16.2-1~lucid1
gstreamer0.10-nice 0.0.12-1~ppa10.04+1
gstreamer0.10-pitfdll 0.9.1.1+cvs20080215-1ubuntu2
gstreamer0.10-plugins-bad 0.10.20.3-1~lucid1
gstreamer0.10-plugins-bad-multiverse 0.10.18-0ubuntu1
gstreamer0.10-plugins-base 0.10.31.3-1~lucid1
gstreamer0.10-plugins-base-apps 0.10.31.3-1~lucid1
gstreamer0.10-plugins-good 0.10.26.3-1~lucid1
gstreamer0.10-plugins-ugly 0.10.16.3-1~lucid1
gstreamer0.10-plugins-ugly-multiverse 0.10.14-0ubuntu2
gstreamer0.10-pocketsphinx 0.5.1+dfsg1-0ubuntu1
gstreamer0.10-pulseaudio 0.10.26.3-1~lucid1
gstreamer0.10-tools 0.10.31.3-1~lucid1
gstreamer0.10-x 0.10.31.3-1~lucid1
libgstfarsight0.10-0 0.0.21-1ubuntu1~ppa10.04+1
libgstreamer-plugins-base0.10-0 0.10.31.3-1~lucid1
libgstreamer0.10-0 0.10.31.3-1~lucid1
libgstreamer0.10-dev 0.10.31.3-1~lucid1
python-gst0.10 0.10.20.3-1~lucid1
Comment 1 Tim-Philipp Müller 2011-01-17 23:40:52 UTC
> ...I experience an intermittent segmentation fault when setting volume against
> a streaming Playbin2.
> 
> I have now recreated this using both gstreamer-java and pygst bindings, so I'm
> pretty confident it's in Gstreamer.

Could you provide a test case in C?

The stack traces in the thread aren't very useful I'm afraid. And they don't seem to crash in GStreamer code afaict, but in the java stack.

 
> Is there a PPA for Ubuntu which I can use to get newer versions of

Yes

> gstreamer-plugins-good (which I believe contains playbin2). I've currently got
> the following installed...

You seem to be using it already, since those seem to be the latest versions.
Comment 2 Cefn Hoile 2011-01-18 00:28:11 UTC
I understood java was seeing a segfault in the native libraries bound to Java, and then bailing.

C could be a show-stopper as I have zero experience of coding desktop apps in C and would have to learn from scratch.

I can try to do it with Qt maybe based on this... http://code.google.com/p/stacked-crooked/source/browse/trunk/PlayGroundCpp/VideoPlayer/ ?

Would that be worth trying? 

Alternatively is anyone else out there who can easily create a C app to load a playbin2 showing video and just throw volume changes at it. It could take me a really long time from my current starting point.
Comment 3 Arun Raghavan 2011-02-01 09:02:44 UTC
Possibly a Python sample would also be sufficient to reproduce this.

As a simple test, I just spammed Totem with volume changes (both the native control and by modifying the stream volume in pavucontrol), and there was no crash.
Comment 4 Cefn Hoile 2011-02-01 09:09:55 UTC
Already created a python example to prove the error was in gstreamer before posting it here (was maybe a bit hidden in the penultimate post to the gstreamer-java thread).
http://pastebin.com/MWg7dGu8

From what I can gather (also discussed in the gstreamer-java thread) the segfault happens in Ubuntu Lucid, and doesn't happen in Fedora, if that helps track it down.
Comment 5 Arun Raghavan 2011-02-01 09:45:11 UTC
How long does it take for this crash to happen? And does this happen on all files? I cannot reproduce this here with core 0.10.31, base 0.10.31 and good 0.10.23.
Comment 6 Cefn Hoile 2011-02-01 16:07:00 UTC
You're lucky to make it through 10 seconds of frequent volume changes before a segfault is triggered in either Python or Java on Ubuntu Lucid.
Comment 7 Cefn Hoile 2011-02-12 11:44:19 UTC
I speculate this is the same as the bug in Banshee reported against Meego, which was eliminated by avoiding making a Gstreamer volume change call https://bugs.meego.com/show_bug.cgi?id=6966

Can anyone tell me why this is NEEDINFO? What info can I give you? I can recreate here using both pygst and gstreamer-java. Happy to gather data from a crash if you tell me what you want.
Comment 8 Tim-Philipp Müller 2011-02-12 12:01:15 UTC
> I speculate this is the same as the bug in Banshee reported against Meego,
> which was eliminated by avoiding making a Gstreamer volume change call
> https://bugs.meego.com/show_bug.cgi?id=6966

That's quite possible. Sadly that bug report doesn't contain much useful information either.

 
> Can anyone tell me why this is NEEDINFO? What info can I give you? I can
> recreate here using both pygst and gstreamer-java. Happy to gather data from a
> crash if you tell me what you want.

I haven't been able to re-create the crash so far, neither has Arun (as I understand it).

A proper stack trace with full debugging symbols would be nice for starters.

What's your glib version? (dpkg -l libglib2.0-0)
Comment 9 Cefn Hoile 2011-02-12 17:01:08 UTC
My glib is...

cefn@cefn-ubuntu-dell:~$ dpkg -l libglib2.0-0
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  libglib2.0-0   2.24.1-0ubuntu The GLib library of C routines

There's now a test case in C written up in a separate bug - the maintainer of gstreamer-java has decided to help track it down...

https://bugzilla.gnome.org/show_bug.cgi?id=640872

So hopefully there's all the info you need there. 

I'm happy for this bug to be rolled up into that one, at least until a fix is found against Andres' build. If the fix doesn't work I'll re-report, but I'm pretty sure it'll be the same problem.

*** This bug has been marked as a duplicate of bug 640872 ***
Comment 10 Tim-Philipp Müller 2011-02-12 17:12:04 UTC
Ok, thanks for your help. I suspect the problem is a well-known GLib bug (notify not thread safe) which is fixed in newer versions (>=2.26 or >=2.28, don't remember which exactly).
Comment 11 Cefn Hoile 2011-02-12 17:36:19 UTC
That's really useful to know. 

I can't see any way to upgrade libglib2.0.0 through apt, either from repositories, PPAs or just .deb files. Is that the right package to try and upgrade? 

Do you have any other suggestions or do I have no chance but to reinstall Ubuntu to get a later Glib?