GNOME Bugzilla – Bug 351623
crash with mpeg files on FreeBSD
Last modified: 2007-08-07 10:09:10 UTC
What were you doing when the application crashed? Attempting to play an MPEG2 file (plays file in Xine). Please feel free to hassle me as much as you like! THis has been a problem since Totem 1.4.0 in GNOME 2.14, I just haven't got off my bum and reported it! Distribution: Unknown Gnome Release: 2.15.91 2006-08-16 (FreeBSD GNOME Project) BugBuddy Version: 2.15.90 Memory status: size: 10563584 vsize: 0 resident: 10563584 share: 0 rss: 27234304 rss_rlim: 0 CPU usage: start_time: 0 rtime: 0 utime: 3659686 stime: 0 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 0 Backtrace was generated from '/usr/local/bin/totem' [New Thread 0x83fe400 (sleeping)] [New Thread 0x8371a00 (sleeping)] [New Thread 0x80c3a00 (sleeping)] [New Thread 0x891f400 (runnable)] [New Thread 0x83d8400 (sleeping)] [New Thread 0x83d8200 (LWP 100117)] [New Thread 0x8094000 (runnable)] [New LWP 100158] [Switching to LWP 100158] 0x28f9351b in kse_release () at kse_release.S:2 2 RSYSCALL(kse_release)
+ Trace 70539
Thread 8 (LWP 100158)
Thread 6 (Thread 0x83d8200 (LWP 100117))
Thread 5 (Thread 0x83d8400 (sleeping))
Thread 4 (Thread 0x891f400 (runnable))
Thread 3 (Thread 0x80c3a00 (sleeping))
Thread 2 (Thread 0x8371a00 (sleeping))
Thread 1 (Thread 0x83fe400 (sleeping))
0x28f9351b 2 RSYSCALL(kse_release) Current language: auto; currently asm
I believe that this is a FreeBSD-specific issue and that this bug might be a dup of 331600. ...Sorry for the poor backtrace, I didn't realise that bug-buddy was going to open a new bug for this! I'm building a debugging kernel and will try to get you a better trace soon.
When does it crash? Right away, after playing a bit, or only when you seek? What are your GStreamer core and plugin versions? $ gst-inspect-0.10 filesrc | grep Version $ gst-inspect-0.10 playbin | grep Version $ gst-inspect-0.10 gconfaudiosink | grep Version $ gst-inspect-0.10 mpeg2dec | grep Version $ gst-inspect-0.10 mpegdemux | grep Version $ gst-inspect-0.10 mad | grep Version Using an up-to-date gst-plugin-ugly with full debugging symbols would probably be very helpful. The crash from the bug you mentioned is fixed in current GStreamer-0.10 AFAIK, so that shouldn't be it.
Also, any chance could you make the file available somewhere so we can check if it works for us?
Created attachment 71016 [details] Video that causes Totem to crash (without gstreamer-plugins-ugly)
Created attachment 71017 [details] Short clip I can get Totem to "sit there" without error trying to play (without gstreamer-plugins-ugly)
Righto... I just built / installed a kernel with debugging symbols and it didn't seem to allow a more complete stack trace, so I guess I just don't know what I'm talking about here :-) Totem crashes without playing any of the file. Interestingly, though I thought that this occurred for all MPEG files I tried to play, this doesn't seem to be the case: Many just caused Totem to "sit there", apparently doing nothing forever. ___ %gst-inspect-0.10 filesrc | grep Version Version: 0.10.9 %gst-inspect-0.10 playbin | grep Version Version: 0.10.9 %gst-inspect-0.10 gconfaudiosink | grep Version Version: 0.10.3 %gst-inspect-0.10 mpeg2dec | grep Version %gst-inspect-0.10 mpegdemux | grep Version %gst-inspect-0.10 mad | grep Version Version: 0.10.3 ___ I guess this means I don't have the required MPEG codecs installed, eh? In case this helps (pkg_info run like this shows installed FreeBSD ports / packages): ___ %pkg_info | grep gstreamer gstreamer-0.10.9_1 Development framework for creating media applications gstreamer-ffmpeg-0.10.1_1 GStreamer plug-in for manipulating MPEG video streams gstreamer-plugins-0.10.9_1,2 GStreamer written collection of plugins handling several me gstreamer-plugins-a52dec-0.10.3_1,2 Gstreamer ATSC A/52 stream aka AC-3 (dvd audio) plugin gstreamer-plugins-cdparanoia-0.10.9_2,2 Gstreamer CDDA extraction (aka audio ripping) plugin gstreamer-plugins-core-0.10_7 Core set of typical audio and video gstreamer-plugins gstreamer-plugins-dts-0.10.3_1,2 Gstreamer dts plugin gstreamer-plugins-dts80-0.8.12_1,1 Gstreamer dts plugin gstreamer-plugins-dvd-0.10.3,2 Gstreamer dvd plugin set gstreamer-plugins-dvd80-0.8.12_2,1 Gstreamer dvd plugin gstreamer-plugins-esound-0.10.3_1,2 Gstreamer enlightenment sound library plugin gstreamer-plugins-flac-0.10.3_1,2 Gstreamer free lossless audio encoder/decoder plugin gstreamer-plugins-flac80-0.8.12_2,1 Gstreamer flac plugin gstreamer-plugins-gconf-0.10.3_3,2 Gstreamer gconf plugin gstreamer-plugins-gnomevfs-0.10.9_1,2 Gstreamer gnomevfs plugin gstreamer-plugins-good-0.10.3_4,2 Good gstreamer-plugins gstreamer-plugins-hal-0.10.3,2 Gstreamer hal plugin gstreamer-plugins-jpeg-0.10.3_1,2 Gstreamer jpeg encoder/decoder plugin gstreamer-plugins-libpng-0.10.3_1,2 Gstreamer png plugin gstreamer-plugins-mad-0.10.3_2,2 Gstreamer mp3 decoder plugin gstreamer-plugins-mad80-0.8.12_3,1 Gstreamer mad plugin gstreamer-plugins-ogg-0.10.9_1,2 Gstreamer Ogg bitstream plugin gstreamer-plugins-ogg80-0.8.12_2,1 Gstreamer ogg plugin gstreamer-plugins-pango-0.10.9_1,2 Gstreamer pango textoverlay plugin gstreamer-plugins-theora-0.10.9_2,2 Gstreamer theora plugin gstreamer-plugins-vorbis-0.10.9_1,2 Gstreamer vorbis encoder/decoder plugin gstreamer-plugins-vorbis80-0.8.12_2,1 Gstreamer vorbis plugin gstreamer-plugins-xvid-0.10.3,2 Gstreamer xvid plugin gstreamer-plugins-xvid80-0.8.12_1,1 Gstreamer xvid plugin gstreamer-plugins80-0.8.12_2,1 GStreamer written collection of plugins handling several me gstreamer80-0.8.12_2 Development framework for creating media applications ___ I installed gstreamer-plugins-ugly 0.10.3 and, interestingly, I now don't get a crash when playing the file in question. However, I also don't get any video output (but do get sound). Whilst the following is reported on stderr without the ugly plugins...: ___ ** Message: don't know how to handle video/mpeg, width=(int)352, height=(int)240, framerate=(fraction)30000/1001, mpegversion=(int)1, systemstream=(boolean)false, codec_data=(buffer)000001b31600f0c402cee0a510111112121213131313141414141415151515151516161616161616171717171717171718181819181818191a1a1a1a191b1b1b1b1b1c1c1c1c1e1e1e1f1f21 GStreamer-CRITICAL **: gst_pad_query_convert: assertion `src_val >= 0' failed aborting... ___ (I suppose indicating that I'm talking crap about the video being MPEG2, too... *sigh*) ...the following is output *with* uglies: ___ ** Message: don't know how to handle video/mpeg, mpegversion=(int)1, systemstream=(boolean)false ___ I've attached the first 50 KB of the file I can cause the crash with (AFI-short.mpg), as well as the first 569 856 B[1] of a file I can cause Totem to do nothing with[2] (Floyd-short.mpg). I created both of these from their originals using dd(1), but can confirm that both are playable in Xine. [1] Anything smaller than 569 856 B (in 512 B blocks) caused Totem to sit on "Playing" reporting a 0 second long file. [2] Interface is still responsive, says "Playing", time counter doesn't move. Can use the scrolly thing to advance through the video (without seeing / hearing anything) and the time is updated, but still doesn't tick over. Output on stderr without gstreamer-plugins-ugly: ___ ** Message: don't know how to handle video/mpeg, width=(int)352, height=(int)240, framerate=(fraction)30000/1001, mpegversion=(int)1, systemstream=(boolean)false, codec_data=(buffer)000001b31600f0c402cee0a4 ___ ...and with: ___ ** Message: don't know how to handle video/mpeg, mpegversion=(int)1, systemstream=(boolean)false ___ Thanks very much for your help!
These messages are 'normal', they indicate that you don't have some plugin installed that's needed to play the file. Totem _should_ be showing you an error dialog that says so too. You probably need the mpeg2dec element and the mpegdemux element (check with gst-inspect-0.10 if you have them), both part of gst-plugins-ugly. I do get such 'You do not have a decoder installed to play those files' dialog with both of the clips in comment #4 and comment #5 (with all of -ugly uninstalled). I can reproduce the 'sits there without throwing an error' with both clips if I uninstall mad and mpeg2dec but keep the mpeg demuxer installed. That needs fixing, probably in playbin. I don't get a crash ever though, which might be due to certain fixes in gst-plugins-ugly 0.10.4, please upgrade to -ugly 0.10.4 and try again with that.
Setting NEEDINFO waiting for results from further tests with gst-plugins-ugly 0.10.4.
Created attachment 71525 [details] New maximum length version of attachment 71016 [details] that I can't now play under Totem 1.5.92
With gst-plugins-ugly installed I don't get the crash... Please note that I'm now running Totem 1.5.92, too. It seems (or I think, at least) that the mpeg2dec plugin isn't part of the FreeBSD gstreamer-plugins-ugly port (which'd be a bug as far as you're concerned, yeah?), but with it (and uglies) installed I can play the _original_ versions of the videos in attachments 71016 and 71017, though interestingly I now get the "sitting there" problem with 71016 itself. If I recreate the file from the original, truncating it to no less than 550 912 B, it seems to work. I meant to attach the minimum working file, but actually attached the largest file I could make without it working... Sorry! This seems to be slightly erratic, anyway. Also, if I now de-install mpeg2dec, I can reproduce the behaviour I'm expecting to see without it (71016 plays without video - it'd be nice to get a codec warning here, by the way :-)), but I still get: ___ % gst-inspect-0.10 mpeg2dec | grep Version Version: 0.10.4 ___ ...does gst-inspect-0.10 cache installed plug-in information or some such? I don't think I was getting this behaviour before, but my installed version of GStreamer hasn't changed (many other GNOME-related thingies have, though). I can still crash Totem when uglies aren't installed. I'd love to provide a backtrace from bug-buddy (recently updated to 2.15.92), but it's now crashing on me itself when generating the stack trace (I have reproduced the main issue at hand here on another machine, by the way)... Huzzah! Are you able to provide me with instructions on how to generate a suitable backtrace without bug-buddy? I tried launching Totem from within the GDB but didn't get a backtrace with or without bug-buddy installed (I guess the GNOME crash handler thingy's getting in the way?). Sorry if this is all getting highly confusing - there seems to be a multitude of (different?) issues biting me and I'm getting more than a little muddled myself! GNOME 2.15.92 is about as stable as Windows at the mo, so I'll try to get a backtrace of Totem crashing again when things have settled down. I've reopened the bug too (or will try to right now, anyway) - please yell at me if I shouldn't have... Thanks for your patience!
Righto, I RTFM, and here's the full screen contents, if you will, for a GDB session used to gather a backtrace of Totem 1.5.92 crashing with the file in attachment 71525 [details]: ___ %gdb totem GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-marcel-freebsd"... (gdb) run ~nick/AFI-less-short.mpg Starting program: /usr/local/bin/totem ~nick/AFI-less-short.mpg warning: Unable to get location for thread creation breakpoint: generic error [New LWP 100107] [New Thread 0x8094000 (LWP 100186)] ** Message: w 620 h 438 sidebar 200 [New Thread 0x88cde00 (LWP 100188)] GStreamer-CRITICAL **: gst_pad_query_convert: assertion `src_val >= 0' failed aborting... ^C[New Thread 0x8094200 (LWP 100187)] Program received signal SIGINT, Interrupt. [Switching to Thread 0x8094200 (LWP 100187)] 0x28f955db in __sys_sigtimedwait () at sigtimedwait.S:2 2 sigtimedwait.S: No such file or directory. in sigtimedwait.S Current language: auto; currently asm (gdb) thread apply all bt [New Thread 0x8926400 (sleeping)] [New Thread 0x80c0c00 (sleeping)] [New Thread 0x88e0600 (runnable)] [New Thread 0x88e0200 (sleeping)] [New Thread 0x83f8400 (sleeping)] [New Thread 0x83dc400 (sleeping)]
+ Trace 70986
Thread 10 (Thread 0x83dc400 (sleeping))
Thread 9 (Thread 0x83f8400 (sleeping))
Thread 8 (Thread 0x88e0200 (sleeping))
Thread 7 (Thread 0x88e0600 (runnable))
Hope this helps, despite whatever the hell's going on at the end there (I can do bt's in GDB and that's about it!)
Righto, With Totem 2.16.1 under GStreamer 0.10.10 I can no longer reproduce a crash. I don't get any nice graphical warnings about missing codecs, however, which would be lovely... but not critical by any means, and not really the subject of this bug report. Essentially, it looks like this one can be closed! I'll try to do so myself after saving this message. Thanks for your time and efforts. I'm afraid I turned this report into rather a dog's breakfast (who am I kidding: there wasn't really enough info to begin with!), so I certainly appreciate your patience, too. Thanks for providing yet another great product! -- Nick Withers email: nick@nickwithers.com Web: http://www.nickwithers.com Mobile: +61 414 397 446
> With Totem 2.16.1 under GStreamer 0.10.10 I can no longer reproduce a crash. Great, thanks for checking up on this! > I don't get any nice graphical warnings about missing codecs, however, which > would be lovely... but not critical by any means, and not really the subject > of this bug report. There's bug #357066 now to track the issue of the missing error dialog.
*** Bug 464195 has been marked as a duplicate of this bug. ***