GNOME Bugzilla – Bug 670088
Error sync-ing iPod: Caught an exception - System.IO.FileNotFoundException: File not found (in `Banshee.Dap')
Last modified: 2020-03-17 09:23:37 UTC
Created attachment 207565 [details] Output banshee --debug --debug-addins When sync-ing music and podcasts, banshee interrupts the process, displays in the interface, under the iPod device, a "File not found" Error with details "file://media/IPOD%20A/iPod_Control/Music/F00/libgpod820374.mp3." Steeps to reproduce: 1.- Start banshee 2.- Select iPod device 3.- Sync Preferences= Music: Sync from myList; Audiobooks: Manage manually; Podcasts: Manage manually 4.- Sync Actual result: The device doesn't get all files synch'ed (quick check: number of Music items in iPod smaller than items in myList) I'm including output of banshee --debug --debug-addins and log. For reference, launching banshee with --debug --debug-addins: [34 Warn 18:24:10.364] Caught an exception - System.IO.FileNotFoundException: File not found (in `Banshee.Dap') at Banshee.Dap.DapSource.AttemptToAddTrackToDevice (Banshee.Collection.Database.DatabaseTrackInfo track, Hyena.SafeUri fromUri) [0x00000] in <filename unknown>:0 at Banshee.Dap.DapSource.AddTrackAndIncrementCount (Banshee.Collection.Database.DatabaseTrackInfo track) [0x00000] in <filename unknown>:0 at Banshee.Sources.PrimarySource.AddTrackList (System.Object cached_list) [0x00000] in <filename unknown>:0 [34 Error 18:24:10.659] Creating Source.UniqueId for Errors (type ErrorSource), but TypeUniqueId is null; trace is at System.Environment.get_StackTrace() at Banshee.Sources.Source.get_UniqueId() at Banshee.Sources.SourceSortType+SourceComparer.Compare(Banshee.Sources.Source a, Banshee.Sources.Source b) at System.Array.qsort(Banshee.Sources.Source[] keys, Banshee.Sources.Source[] items, Int32 low0, Int32 high0, IComparer`1 comparer) at System.Array.qsort(Banshee.Sources.Source[] keys, Banshee.Sources.Source[] items, Int32 low0, Int32 high0, IComparer`1 comparer) at System.Array.SortImpl(Banshee.Sources.Source[] keys, Banshee.Sources.Source[] items, Int32 index, Int32 length, IComparer`1 comparer) at System.Array.Sort(Banshee.Sources.Source[] array, Int32 index, Int32 length, IComparer`1 comparer) at System.Collections.Generic.List`1[[Banshee.Sources.Source, Banshee.Services, Version=2.2.0.0, Culture=neutral, PublicKeyToken=null]].Sort(IComparer`1 comparer) at Banshee.Sources.SourceSortType.Sort(System.Collections.Generic.List`1 sources, Boolean separateTypes) at Banshee.Sources.Source.SortChildSources() at Banshee.Sources.Source.OnChildSourceAdded(Banshee.Sources.Source source) at Banshee.Sources.Source.AddChildSource(Banshee.Sources.Source child) at Banshee.Dap.DapLibrarySync.Sync(Boolean force) at Banshee.Dap.DapLibrarySync.Sync() at Banshee.Dap.DapSync.RateLimitedSync() at Banshee.Base.RateLimiter.InnerExecute() at Banshee.Base.RateLimiter.Execute() at Banshee.Dap.DapSync.<Sync>m__12()
Created attachment 207566 [details] Banshee log
I have found the offending title: there is a title in my banshee Music Library that points to the already mentioned /media/.../libgpod820374.mp3. This title is included in the music list to be synched back to the iPod. The file does not exist in the iPod anymore. I don't know how this title has been collected into the banshee's Music Library, but this has been definitively the cause of the problem.
I'd close it as notabug, but I think that it would be better to add a more user-friendly warning message, as where the file come from (the file path column could be hidden). I'll lower the importance.
Thanks Alberto, but enhancement is not a lower priority, just a different kind of a bug (a "feature"). BTW having a track in your library that has a path that points to the iPod is certainly the culprit, I wonder how did you do it, if it was Banshee's fault or just a mistake on your part when you imported media? Either way it smells like a bug so let's keep this open until anyone steps up and finds a fix. Thanks
Thanks Andrés for your quick response. I have lowered the priority because there is a simple workaround. I still have to try to reproduce this situation, but this would be a different bug. So I guess it would be better to close this bug? I would then create a new one for the feature request, with a more sensible title: "Provide user friendly error if synch to iPod is interrupted due to a non existing track"
It is easy to have tracks in the library pointing to the iPod: with the "Copy files to media folders when importing" deselected. Banshee keeps the tracks even if a "Rescan Music Library" is requested. Afterwards, activate this option, play a bit with the library, forget that you once imported elements with this option disabled, do not show the "File Location" column in the Music grid, and you have the time-bomb ready... A possible improvement would be to alert the user after executing the "Rescan Music Library" of "inactive" or "unreachable" tracks.
Banshee is not under active development anymore and had its last code changes more than three years ago. Its codebase has been archived. Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect reality. Please feel free to reopen this ticket (or rather transfer the project to GNOME Gitlab, as GNOME Bugzilla is being shut down) if anyone takes the responsibility for active development again. See https://gitlab.gnome.org/Infrastructure/Infrastructure/issues/264 for more info.