GNOME Bugzilla – Bug 328824
crash reading .PNG file
Last modified: 2006-03-26 05:38:22 UTC
Distribution: Ubuntu 6.04 (dapper) Package: rhythmbox Severity: Normal Version: GNOME2.13.4 unspecified Gnome-Distributor: Ubuntu Synopsis: crash resizing browser pane (just started monitoring files) Bugzilla-Product: rhythmbox Bugzilla-Component: General Bugzilla-Version: unspecified BugBuddy-GnomeVersion: 2.0 (2.13.0) Description: I upgraded to Ubuntu Dapper Flight 3 (i.e. Ubuntu 6.10 test release 3) today and started trying to play songs in my library. Most of them are MP3s, so I needed to install gstreamer0.10-plugins-ugly. After doing this, I started playing some songs, only to realize very few were available. My /pub file system was unavailable. After mounting my remote NFS file server on /pub, I tried adding a folder containing a few albums from a subdirectory of /pub. I then enabled folder monitoring on my home directory. Finally, during playback, I clicked on the horizontal grippy to make the artist and album panes larger, when Rhythmbox crashed. It seems to have been due to resizing the pane while Rhythmbox was busy, however it could be due to attempting to monitor a remote file system (either due to a bug in that code or due to automatically detecting a file in the monitored directory that GStreamer or Rhythmbox choked on while trying to import it). Debugging Information: Backtrace was generated from '/usr/bin/rhythmbox' (no debugging symbols found) Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1227323712 (LWP 6140)] [New Thread -1383326800 (LWP 7282)] [New Thread -1349755984 (LWP 7237)] [New Thread -1400112208 (LWP 7235)] [New Thread -1374934096 (LWP 7214)] [New Thread -1391719504 (LWP 6814)] [New Thread -1246704720 (LWP 6810)] [New Thread -1290613840 (LWP 6805)] [New Thread -1341363280 (LWP 6705)] [New Thread -1332970576 (LWP 6603)] [New Thread -1324577872 (LWP 6594)] [New Thread -1316185168 (LWP 6583)] [New Thread -1307792464 (LWP 6571)] [New Thread -1256649808 (LWP 6442)] [New Thread -1282221136 (LWP 6167)] [New Thread -1273435216 (LWP 6153)] [New Thread -1246262352 (LWP 6142)] [New Thread -1237869648 (LWP 6141)] (no debugging symbols found) 0xffffe410 in __kernel_vsyscall ()
+ Trace 65659
Thread 2 (Thread -1383326800 (LWP 7282))
------- Bug created by bug-buddy at 2006-01-27 11:54 -------
What version of rhythmbox are you using? Is it CVS?
It appears that the thread that crashed (thread 2) was trying to read a .png file. Can you try running rhythmbox -d to help narrow down the file that's causing the problem? Monitoring your home directory is generally not a good idea, since it contains a lot of frequently changed files that rhythmbox won't import anyway.
looks like a gstreamer problem
The last bit of output from rhythmbox -d is: [0x8103890] [rb_playlist_manager_save_playlists_async] rb-playlist-manager.c:754 (11:17:57): saving the playlists [0x8103890] [rb_playlist_manager_save_playlists_async] rb-playlist-manager.c:799 (11:17:57): no save needed, ignoring [0x84fa200] [queue_stat_uri] rhythmdb.c:1745 (11:17:57): queueing stat for "file:///home/michael/.dia/diarc" [0x84fa200] [queue_stat_uri] rhythmdb.c:1745 (11:17:57): queueing stat for "file:///home/michael/.dia/persistence" [0x84fa200] [queue_stat_uri] rhythmdb.c:1745 (11:17:57): queueing stat for "file:///home/michael/.dia/defaults.dia" [0x84fa200] [queue_stat_uri] rhythmdb.c:1745 (11:17:57): queueing stat for "file:///home/michael/.dia/pluginrc" [0x84fa200] [queue_stat_uri] rhythmdb.c:1745 (11:17:57): queueing stat for "file:///home/michael/.dia/history" [0x84fa200] [queue_stat_uri] rhythmdb.c:1745 (11:17:57): queueing stat for "file:///home/michael/.dia/menurc" [0x84fa200] [queue_stat_uri] rhythmdb.c:1745 (11:17:57): queueing stat for "file:///home/michael/.htaccess.bak" [0x84fa200] [queue_stat_uri] rhythmdb.c:1745 (11:17:57): queueing stat for "file:///home/michael/.eMule" A long way before that, the last execute messages are: [0x824cfd8] [action_thread_main] rhythmdb.c:1962 (11:17:39): executing RHYTHMDB_ACTION_LOAD for "file:///home/michael/Profile/Application%20Data/Opera/Opera%208%20Beta/profile/cache4/opr000SX.gif" [0x824cfd8] [action_thread_main] rhythmdb.c:1962 (11:17:39): executing RHYTHMDB_ACTION_LOAD for "file:///home/michael/Profile/Application%20Data/Opera/Opera%208%20Beta/profile/cache4/opr000SV.jpg" [0x824cfd8] [action_thread_main] rhythmdb.c:1962 (11:17:39): executing RHYTHMDB_ACTION_LOAD for "file:///home/michael/Profile/Application%20Data/Opera/Opera%208%20Beta/profile/cache4/opr000S7.gif" [0x824cfd8] [action_thread_main] rhythmdb.c:1962 (11:17:39): executing RHYTHMDB_ACTION_LOAD for "file:///home/michael/Profile/Application%20Data/Opera/Opera%208%20Beta/profile/cache4/opr000SA.png" So it does seem likely it's choking on a .PNG. You're right it's probably not a good idea to monitor my ~, but that's what Rhythmbox suggested. ;-) dpkg -l reports version rhythmbox 0.9.2cvs20060102-0ubuntu1, gstreamer0.10 0.10.2-1ubuntu2, and gstreamer0.8 0.8.11-3ubuntu2.
Created attachment 58246 [details] PNG file that Rhythmbox seems to crash on The image opens in Eye of GNOME but shows no content. Running png2pnm on the file generates a PNM image that appears to contain all NULLs. Nothing else chokes on the file, but I'm guessing it's not a valid PNG.
Moving to gst-plugins-good, since the crash is in the plugin.
Seems to be a valid PNG, but of slightly unusual dimensions (5x2500). Decodes and displays fine here with: gst-launch-0.10 filesrc location=328824.png ! decodebin ! ffmpegcolorspace ! ximagesink audiotestsrc num-buffers=1024 ! fakesink sync=true (the audiotestsrc ! fakesink bit is there to make the image stay visible on the screen for a while). Michael, does that pipeline work for you when you run it from the command line? Can you reproduce the crash? Might just be a smacked stack and a bad trace. gst_pngdec_get_type() isn't called from gst_task_get_type(), which in turn probably isn't called from g_thread_pool_free() either.
Didn't mean to set this to NEEDINFO ...
A manual pipeline works fine here too (currenct cvs on ppc). I've also tried to add the png to rhythmbox(0.9.3.1) and it doesn't segfault. Can someone replicate this problem in gstreamer ?
There have been quite a few typefinding fixes in the last two releases. Could you try again with GStreamer core 0.10.4 and gst-plugins-base 0.10.5 to see if it's fixed now?
Chances are actually pretty good that this is the same issue as bug #335755 (which should be fixed in gst-plugins-good CVS). If not, please reopen. *** This bug has been marked as a duplicate of 335755 ***
It seems to be fixed in plugins-base 0.10.5. I told Rhythmbox to monitor my ~/Music directory, copied the questionable PNG file into ~/Music, and Rhythmbox has started OK.