GNOME Bugzilla – Bug 580044
LINQ crash when refreshing metadata from 1.4.3 database
Last modified: 2009-05-02 01:01:32 UTC
I reliably get this crash when I "make run" from a fresh build of master against a clean database created with 1.4.3. ** (Nereid:17118): WARNING **: Missing method Hyena.Jobs.Job.get_Resources in assembly /home/aaron/git/banshee/bin/Hyena.dll token 6000255 Exception in Gtk# callback delegate Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception. System.TypeLoadException: A type load exception has occurred. at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator29`1[Hyena.Jobs.Job].MoveNext () [0x00059] in /usr/src/packages/BUILD/mono-2.0.1/mcs/class/System.Core/System.Linq/Enumerable.cs:2305 at System.Linq.Enumerable.Any[Job] (IEnumerable`1 source) [0x0000d] in /usr/src/packages/BUILD/mono-2.0.1/mcs/class/System.Core/System.Linq/Enumerable.cs:120 at Hyena.Jobs.Scheduler.CanStartJob (Hyena.Jobs.Job job, Boolean pausedJob) [0x0005e] in /home/aaron/git/banshee/src/Libraries/Hyena/Hyena.Jobs/Scheduler.cs:193 at Hyena.Jobs.Scheduler.CanStart (Hyena.Jobs.Job job) [0x00000] in /home/aaron/git/banshee/src/Libraries/Hyena/Hyena.Jobs/Scheduler.cs:175 at Hyena.Jobs.Scheduler.Add (Hyena.Jobs.Job job) [0x00079] in /home/aaron/git/banshee/src/Libraries/Hyena/Hyena.Jobs/Scheduler.cs:81 at Banshee.ServiceStack.DbIteratorJob.Register () [0x00000] in /home/aaron/git/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/DbIteratorJob.cs:74 at Banshee.Metadata.SaveTrackMetadataService.Save () [0x000be] in /home/aaron/git/banshee/src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataService.cs:103 at Banshee.Metadata.SaveTrackMetadataService.<SaveTrackMetadataService>m__23 () [0x00047] in /home/aaron/git/banshee/src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataService.cs:68 at Banshee.Gui.GtkBaseClient+<RunTimeout>c__AnonStorey28.<>m__109 () [0x00000] in /home/aaron/git/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:237 at GLib.Timeout+TimeoutProxy.Handler () [0x0000c] in /usr/src/packages/BUILD/gtk-sharp-2.12.6/glib/Timeout.cs:46 at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal) in /usr/src/packages/BUILD/gtk-sharp-2.12.6/glib/ExceptionManager.cs:line 58 at GLib.Timeout+TimeoutProxy.Handler() in /usr/src/packages/BUILD/gtk-sharp-2.12.6/glib/Timeout.cs:line 51 at Gtk.Application.gtk_main() at Gtk.Application.Run() in /usr/src/packages/BUILD/gtk-sharp-2.12.6/gtk/generated/AboutDialog.cs:line 1 at Banshee.Gui.GtkBaseClient.Run() in /home/aaron/git/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 155 at Banshee.Gui.GtkBaseClient.Startup() in /home/aaron/git/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 78 at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) in /home/aaron/git/banshee/src/Libraries/Hyena.Gui/Hyena.Gui/CleanRoomStartup.cs:line 54 at Banshee.Gui.GtkBaseClient.Startup() in /home/aaron/git/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 73 at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) in /home/aaron/git/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 63 at Nereid.Client.Main(System.String[] args) in /home/aaron/git/banshee/src/Clients/Nereid/Nereid/Client.cs:line 48
This is Banshee running on Mono 2.0.1. We must make sure that everything works on 2.0.1 as a minimum Mono version for the next year most likely. All testing and development should be done against that version.
The same exception is thrown on `make test` when running under Mono 2.0.1
Another way to reproduce it is to "Edit Track Information" and press OK without editing anything. I always see the exception a couple of seconds later. Sometimes the exception is followed by a silent crash. In this case the stack trace is slightly different: ** (Nereid:9771): WARNING **: Missing method Hyena.Jobs.Job.get_Resources in assembly /home/alex/Projects/banshee/bin/Hyena.dll token 60002dd Unhandled Exception: System.TypeLoadException: A type load exception has occurred. at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator29`1[Hyena.Jobs.Job].MoveNext () [0x00000] at Hyena.Jobs.JobExtensions.ForEach[Job] (IEnumerable`1 source, System.Action`1 func) [0x0001a] in /home/alex/Projects/banshee/src/Libraries/Hyena/Hyena.Jobs/JobExtensions.cs:54 at Hyena.Jobs.Scheduler.StartJob (Hyena.Jobs.Job job) [0x00000] in /home/alex/Projects/banshee/src/Libraries/Hyena/Hyena.Jobs/Scheduler.cs:201 at Hyena.Jobs.Scheduler.Add (Hyena.Jobs.Job job) [0x00085] in /home/alex/Projects/banshee/src/Libraries/Hyena/Hyena.Jobs/Scheduler.cs:82 at Banshee.ServiceStack.DbIteratorJob.Register () [0x00000] in /home/alex/Projects/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/DbIteratorJob.cs:74 at Banshee.Metadata.SaveTrackMetadataService.Save () [0x000be] in /home/alex/Projects/banshee/src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataService.cs:103 at Banshee.Metadata.SaveTrackMetadataService.OnTracksChanged (Banshee.Sources.Source sender, Banshee.Sources.TrackEventArgs args) [0x00000] in /home/alex/Projects/banshee/src/Core/Banshee.Services/Banshee.Metadata/SaveTrackMetadataService.cs:108 at (wrapper delegate-invoke) TrackEventHandler:invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) at Banshee.Sources.PrimarySource+<OnTracksChanged>c__AnonStorey28.<>m__15 () [0x0004d] in /home/alex/Projects/banshee/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs:412 ~/Projects/banshee(master)$
*** Bug 581010 has been marked as a duplicate of this bug. ***
Ok, for some reason Mono 2.0.1 really didn't like that Resources property. Changing it to a field 'fixes' the problem. Hyena unit tests should also now pass (there was a bug w/ the test jobs not calling OnFinished () there that caused them to never finish).
Confirming, thanks!