GNOME Bugzilla – Bug 154909
Import hangs on certain images in import directory
Last modified: 2004-12-22 21:47:04 UTC
Sometimes, when an image file is in a directory being imported, Rhythmbox will try to read the image's metadata. The import process hangs as a result: the progress meter stays in "I'm looking for files" mode and Rhythmbox has to be force-quit. Steps to reproduce: 1. Import a directory containing an image file. Expected results: Rhythmbox ignores the image file and imports any music files in the directory. Actual results: Rhythmbox tries to import the image file. Debugging output for when this happens: [0x820d7b0] [rb_metadata_load] rb-metadata-gst.c:468 (10:15:10): loading metadata for uri: file:///mnt/wily/music/Pillows/Pantomime/info [0x80fc0b0] [rb_shell_player_state_changed_cb] rb-shell-player.c:1435 (10:15:10): state changed [0x80fc0b0] [rb_shell_player_sync_control_state] rb-shell-player.c:1377 (10:15:10): syncing control state [0x80fc0b0] [rb_shell_player_sync_buttons] rb-shell-player.c:1684 (10:15:10): syncing with source 0x8251828 [0x80fc0b0] [rb_shell_player_set_play_button] rb-shell-player.c:1577 (10:15:10): setting play button [0x820d7b0] [rb_metadata_gst_typefind_cb] rb-metadata-gst.c:421 (10:15:10): found type text/plain [0x820d7b0] [rb_metadata_gst_eos_cb] rb-metadata-gst.c:316 (10:15:10): caught eos [0x820d7b0] [rb_metadata_load] rb-metadata-gst.c:544 (10:15:10): caught eos without handoff! [0x820d7b0] [rb_metadata_load] rb-metadata-gst.c:560 (10:15:10): ignoring file file:///mnt/wily/music/Pillows/Pantomime/info with detected type text/plain [0x820d7b0] [rhythmdb_add_song] rhythmdb.c:945 (10:15:10): unsupported file [0x820d7b0] [rb_metadata_load] rb-metadata-gst.c:468 (10:15:10): loading metadata for uri: file:///mnt/wily/music/Pillows/Pantomime/cover-front.jpg [0x820d7b0] [rb_metadata_gst_typefind_cb] rb-metadata-gst.c:421 (10:15:10): found type image/jpeg [0x80fc0b0] [rb_playlist_manager_save_playlists] rb-playlist-manager.c:594 (10:15:15): saving the playlists [0x80fc0b0] [rb_playlist_manager_save_playlists] rb-playlist-manager.c:597 (10:15:15): no save needed, ignoring [0x80fc0b0] [rhythmdb_save] rhythmdb.c:1303 (10:15:20): saving the rhythmdb in the background [0x87ea760] [rhythmdb_save_thread_main] rhythmdb.c:1290 (10:15:20): entering save thread [0x87ea760] [rhythmdb_save_worker] rhythmdb.c:1262 (10:15:20): no save needed, ignoring [0x80fc0b0] [rb_playlist_manager_save_playlists] rb-playlist-manager.c:594 (10:15:25): saving the playlists [0x80fc0b0] [rb_playlist_manager_save_playlists] rb-playlist-manager.c:597 (10:15:25): no save needed, ignoring Note that it skips a text file found in the directory but tries to read an image file. Rhythmbox doesn't hang completely, since the check to save the playlists in the background keeps going. The import does not proceed, however. It doesn't seem like this happens for any image file, though I can reproduce it for certain ones. I'll include a small image that triggers this bug. This affects Rhythmbox 0.8.7, which doesn't seem to be an option in the bug report's Version box.
Created attachment 32399 [details] This image consistently triggers the bug if it's in the imported directory.
This might be a GStreamer problem instead of a Rhythmbox problem. Looking at the code, it seems that it's getting stuck in the gst_bin_iterate() loop at rb-metadata-gst.c:514. EOS ought to be getting triggered at some point, so if it's not, that seems to suggest a problem with the pipeline itself. Could someone more familiar with the GStreamer metadata code verify this and reassign this bug appropriately? I'm using GStreamer 0,8.7 and GStreamer-Plugins 0.8.5 (Debian package versions 0.8.7-1 and 0.8.5-1 respectively).
This is Debian bug http://bugs.debian.org/277146
This is Gstreamer's Bug#155814.
I am closing the bug, first because it's a gstreamer bug, and second because it's fixed in gstreamer-plugins' CVS.