I can easily recreate this problem: I only need to edit the metadata of a few files in my collection of classical FLAC files. Some changes will go through but some will not, and Rhythmbox will display a title-less dialog about an internal GStreamer problem. If I look closely in the file system, I will find some left-over hidden temporary files that are playable but truncated near the end, one for each failed edit.
I have a few observations:
- Whenever a metadata-change operation fails, the error message will appear after *15 seconds*. I think there is a timeout somewhere that arbitrarily concludes that the operation fails after that time. This might explain why I have been unable to recreate the problem when I have copied parts of collection to my internal drive, which is my faster than the drive that has the collection. It might also explain why some edits go through and others not: if the file is large it takes longer to rewrite.
- Rhythmbox will not wait for the edits to have effect before rescanning the collection. Since Rhytmhbox doesn't wait for the result of the metadata change, it looks like the operation succeeded with a spurious error indication. It is not until the collection is reloaded that it it obvious that the operation failed. And the user's storage space will be eaten by large hidden temporary files.
Following is some debug output. Note the *15-second gap* between the start of the operation and the detection of the error:
(10:24:22) [0xbf4700] [rb_metadata_save] rb-metadata-gst.c:1300: saving metadata for uri: file:///media/Passport/musik/klassiskt/Mahler%20-%20Sinfonie%20Nr.9%20-%20Polish%20National%20Radio%20Symphony%20Orchestra/Mahler%20-%20Symphony%20%239%20-%201-01%20-%20Mvt%201%20-%20Andante%20comodo.flac
(10:24:22) [0xbf4700] [rb_metadata_save] rb-metadata-gst.c:1303: temporary file name prefix: file:///media/Passport/musik/klassiskt/Mahler%20-%20Sinfonie%20Nr.9%20-%20Polish%20National%20Radio%20Symphony%20Orchestra/.Mahler%20-%20Symphony%20%239%20-%201-01%20-%20Mvt%201%20-%20Andante%20comodo.flac
[snipped]
(10:24:22) [0xbf4700] [rb_metadata_bus_handler] rb-metadata-gst.c:946: message of type state-changed from pipeline
(10:24:22) [0xbf4700] [rb_metadata_gst_load_tag] rb-metadata-gst.c:663: uri: file:///media/Passport/musik/klassiskt/Mahler%20-%20Sinfonie%20Nr.9%20-%20Polish%20National%20Radio%20Symphony%20Orchestra/Mahler%20-%20Symphony%20%239%20-%201-01%20-%20Mvt%201%20-%20Andante%20comodo.flac tag: artist
(10:24:22) [0xbf4700] [rb_metadata_gst_load_tag] rb-metadata-gst.c:663: uri: file:///media/Passport/musik/klassiskt/Mahler%20-%20Sinfonie%20Nr.9%20-%20Polish%20National%20Radio%20Symphony%20Orchestra/Mahler%20-%20Symphony%20%239%20-%201-01%20-%20Mvt%201%20-%20Andante%20comodo.flac tag: album
(10:24:22) [0xbf4700] [rb_metadata_gst_load_tag] rb-metadata-gst.c:716: Got shorter duplicate tag
(10:24:22) [0xbf4700] [rb_metadata_gst_load_tag] rb-metadata-gst.c:663: uri: file:///media/Passport/musik/klassiskt/Mahler%20-%20Sinfonie%20Nr.9%20-%20Polish%20National%20Radio%20Symphony%20Orchestra/Mahler%20-%20Symphony%20%239%20-%201-01%20-%20Mvt%201%20-%20Andante%20comodo.flac tag: title
(10:24:22) [0xbf4700] [rb_metadata_gst_load_tag] rb-metadata-gst.c:663: uri: file:///media/Passport/musik/klassiskt/Mahler%20-%20Sinfonie%20Nr.9%20-%20Polish%20National%20Radio%20Symphony%20Orchestra/Mahler%20-%20Symphony%20%239%20-%201-01%20-%20Mvt%201%20-%20Andante%20comodo.flac tag: track-number
(10:24:22) [0xbf4700] [rb_metadata_gst_load_tag] rb-metadata-gst.c:663: uri: file:///media/Passport/musik/klassiskt/Mahler%20-%20Sinfonie%20Nr.9%20-%20Polish%20National%20Radio%20Symphony%20Orchestra/Mahler%20-%20Symphony%20%239%20-%201-01%20-%20Mvt%201%20-%20Andante%20comodo.flac tag: genre
(10:24:22) [0x14f4500] [rb_statusbar_sync_status] rb-statusbar.c:470: updating status with: '1326 songs, 5 days, 4 hours and 31 minutes, 29.7 GB', '', 999.000000
(10:24:22) [0x14f4500] [rb_shell_clipboard_sync] rb-shell-clipboard.c:584: syncing clipboard
(10:24:22) [0x14f4500] [rb_browser_source_state_pref_changed] rb-browser-source.c:775: state prefs changed
(10:24:22) [0x14f4500] [rb_browser_source_state_prefs_sync] rb-browser-source.c:785: syncing state
(10:24:27) [0x14f4500] [rb_audioscrobbler_should_handshake] rb-audioscrobbler.c:819: No username set
(10:24:37) [0x23def60] [kill_metadata_service] rb-metadata-dbus-client.c:147: closing dbus connection
(10:24:37) [0x23def60] [kill_metadata_service] rb-metadata-dbus-client.c:157: killing child process
(10:24:37) [0x23def60] [kill_metadata_service] rb-metadata-dbus-client.c:164: closing metadata child process stdout pipe
(10:24:37) [0x23def60] [default_sync_metadata] rhythmdb.c:4525: error saving metadata for file:///media/Passport/musik/klassiskt/Mahler%20-%20Sinfonie%20Nr.9%20-%20Polish%20National%20Radio%20Symphony%20Orchestra/Mahler%20-%20Symphony%20%239%20-%201-01%20-%20Mvt%201%20-%20Andante%20comodo.flac: Internal GStreamer problem; file a bug; reloading metadata to revert
Rhythmbox 0.12.0/Ubuntu 9.04
I can easily recreate this problem: I only need to edit the metadata of a few files in my collection of classical FLAC files. Some changes will go through but some will not, and Rhythmbox will display a title-less dialog about an internal GStreamer problem. If I look closely in the file system, I will find some left-over hidden temporary files that are playable but truncated near the end, one for each failed edit.
I have a few observations:
- Whenever a metadata-change operation fails, the error message will appear after *15 seconds*. I think there is a timeout somewhere that arbitrarily concludes that the operation fails after that time. This might explain why I have been unable to recreate the problem when I have copied parts of collection to my internal drive, which is my faster than the drive that has the collection. It might also explain why some edits go through and others not: if the file is large it takes longer to rewrite.
- Rhythmbox will not wait for the edits to have effect before rescanning the collection. Since Rhytmhbox doesn't wait for the result of the metadata change, it looks like the operation succeeded with a spurious error indication. It is not until the collection is reloaded that it it obvious that the operation failed. And the user's storage space will be eaten by large hidden temporary files.
Following is some debug output. Note the *15-second gap* between the start of the operation and the detection of the error:
(10:24:22) [0xbf4700] [rb_metadata_save] rb-metadata- gst.c:1300: saving metadata for uri: file:// /media/ Passport/ musik/klassiskt /Mahler% 20-%20Sinfonie% 20Nr.9% 20-%20Polish% 20National% 20Radio% 20Symphony% 20Orchestra/ Mahler% 20-%20Symphony% 20%239% 20-%201- 01%20-% 20Mvt%201% 20-%20Andante% 20comodo. flac gst.c:1303: temporary file name prefix: file:// /media/ Passport/ musik/klassiskt /Mahler% 20-%20Sinfonie% 20Nr.9% 20-%20Polish% 20National% 20Radio% 20Symphony% 20Orchestra/ .Mahler% 20-%20Symphony% 20%239% 20-%201- 01%20-% 20Mvt%201% 20-%20Andante% 20comodo. flac bus_handler] rb-metadata- gst.c:946: message of type state-changed from pipeline gst_load_ tag] rb-metadata- gst.c:663: uri: file:// /media/ Passport/ musik/klassiskt /Mahler% 20-%20Sinfonie% 20Nr.9% 20-%20Polish% 20National% 20Radio% 20Symphony% 20Orchestra/ Mahler% 20-%20Symphony% 20%239% 20-%201- 01%20-% 20Mvt%201% 20-%20Andante% 20comodo. flac tag: artist gst_load_ tag] rb-metadata- gst.c:663: uri: file:// /media/ Passport/ musik/klassiskt /Mahler% 20-%20Sinfonie% 20Nr.9% 20-%20Polish% 20National% 20Radio% 20Symphony% 20Orchestra/ Mahler% 20-%20Symphony% 20%239% 20-%201- 01%20-% 20Mvt%201% 20-%20Andante% 20comodo. flac tag: album gst_load_ tag] rb-metadata- gst.c:716: Got shorter duplicate tag gst_load_ tag] rb-metadata- gst.c:663: uri: file:// /media/ Passport/ musik/klassiskt /Mahler% 20-%20Sinfonie% 20Nr.9% 20-%20Polish% 20National% 20Radio% 20Symphony% 20Orchestra/ Mahler% 20-%20Symphony% 20%239% 20-%201- 01%20-% 20Mvt%201% 20-%20Andante% 20comodo. flac tag: title gst_load_ tag] rb-metadata- gst.c:663: uri: file:// /media/ Passport/ musik/klassiskt /Mahler% 20-%20Sinfonie% 20Nr.9% 20-%20Polish% 20National% 20Radio% 20Symphony% 20Orchestra/ Mahler% 20-%20Symphony% 20%239% 20-%201- 01%20-% 20Mvt%201% 20-%20Andante% 20comodo. flac tag: track-number gst_load_ tag] rb-metadata- gst.c:663: uri: file:// /media/ Passport/ musik/klassiskt /Mahler% 20-%20Sinfonie% 20Nr.9% 20-%20Polish% 20National% 20Radio% 20Symphony% 20Orchestra/ Mahler% 20-%20Symphony% 20%239% 20-%201- 01%20-% 20Mvt%201% 20-%20Andante% 20comodo. flac tag: genre sync_status] rb-statusbar.c:470: updating status with: '1326 songs, 5 days, 4 hours and 31 minutes, 29.7 GB', '', 999.000000 clipboard_ sync] rb-shell- clipboard. c:584: syncing clipboard source_ state_pref_ changed] rb-browser- source. c:775: state prefs changed source_ state_prefs_ sync] rb-browser- source. c:785: syncing state ler_should_ handshake] rb-audioscrobbl er.c:819: No username set service] rb-metadata- dbus-client. c:147: closing dbus connection service] rb-metadata- dbus-client. c:157: killing child process service] rb-metadata- dbus-client. c:164: closing metadata child process stdout pipe sync_metadata] rhythmdb.c:4525: error saving metadata for file:// /media/ Passport/ musik/klassiskt /Mahler% 20-%20Sinfonie% 20Nr.9% 20-%20Polish% 20National% 20Radio% 20Symphony% 20Orchestra/ Mahler% 20-%20Symphony% 20%239% 20-%201- 01%20-% 20Mvt%201% 20-%20Andante% 20comodo. flac: Internal GStreamer problem; file a bug; reloading metadata to revert
(10:24:22) [0xbf4700] [rb_metadata_save] rb-metadata-
[snipped]
(10:24:22) [0xbf4700] [rb_metadata_
(10:24:22) [0xbf4700] [rb_metadata_
(10:24:22) [0xbf4700] [rb_metadata_
(10:24:22) [0xbf4700] [rb_metadata_
(10:24:22) [0xbf4700] [rb_metadata_
(10:24:22) [0xbf4700] [rb_metadata_
(10:24:22) [0xbf4700] [rb_metadata_
(10:24:22) [0x14f4500] [rb_statusbar_
(10:24:22) [0x14f4500] [rb_shell_
(10:24:22) [0x14f4500] [rb_browser_
(10:24:22) [0x14f4500] [rb_browser_
(10:24:27) [0x14f4500] [rb_audioscrobb
(10:24:37) [0x23def60] [kill_metadata_
(10:24:37) [0x23def60] [kill_metadata_
(10:24:37) [0x23def60] [kill_metadata_
(10:24:37) [0x23def60] [default_