GNOME Bugzilla – Bug 671965
Banshee hangs in Mono.Addins.Serialization.BinaryXmlReader.Skip ()
Last modified: 2012-06-11 18:14:36 UTC
Originally reported at: https://bugs.launchpad.net/bugs/925701 Banshee hangs at startup with the following stack trace: ~$ banshee [Info 14:06:55.600] Running Banshee 2.2.1: [Ubuntu 11.10 (linux-gnu, i686) @ 2011-12-19 14:51:26 UTC] Full thread dump: "<unnamed thread>" tid=0x0xb74fbb60 this=0x0x56f18 thread handle 0x403 state : not waiting owns () at Mono.Addins.Serialization.BinaryXmlReader.Skip () <0x0000e> at Mono.Addins.Serialization.BinaryXmlReader.SkipToValue (string) <0x00063> at Mono.Addins.Serialization.BinaryXmlReader.ReadValue (string) <0x00013> at Mono.Addins.Database.FileDatabase.ReadObject (string,Mono.Addins.Serialization.BinaryXmlTypeMap) <0x0006b> at Mono.Addins.Database.AddinHostIndex.Read (Mono.Addins.Database.FileDatabase,string) <0x0001f> at Mono.Addins.Database.AddinDatabase.GetAddinHostIndex () <0x00087> at Mono.Addins.Database.AddinDatabase.GetAddinForHostAssembly (string,string) <0x0007f> at Mono.Addins.AddinRegistry.GetAddinForHostAssembly (string) <0x0003f> at Mono.Addins.AddinEngine.CheckHostAssembly (System.Reflection.Assembly) <0x000c3> at Mono.Addins.AddinEngine.ActivateRoots () <0x00043> at Mono.Addins.AddinEngine.Initialize (System.Reflection.Assembly,string,string,string) <0x0018f> at Mono.Addins.AddinManager.Initialize (string) <0x00043> at Banshee.ServiceStack.ServiceManager.InitializeAddins () <0x0003f> at Banshee.ServiceStack.ServiceManager.DefaultInitialize () <0x00013> at Banshee.ServiceStack.Application.Initialize () <0x0000b> at Banshee.Gui.GtkBaseClient.Initialize (bool) <0x0003b> at Banshee.Gui.GtkBaseClient..ctor (bool,string) <0x00023> at Banshee.Gui.GtkBaseClient..ctor () <0x00017> at Nereid.Client..ctor () <0x00013> at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0xffffffff> at (wrapper managed-to-native) System.Reflection.MonoCMethod.InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&) <0xffffffff> at System.Reflection.MonoCMethod.Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) <0x00197> at System.Reflection.MonoCMethod.Invoke (System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) <0x00024> at System.Reflection.ConstructorInfo.Invoke (object[]) <0x00042> at System.Activator.CreateInstance (System.Type,bool) <0x001c3> at System.Activator.CreateInstance (System.Type) <0x00013> at Banshee.Gui.GtkBaseClient.Startup () <0x00017> at Hyena.Gui.CleanRoomStartup.Startup (Hyena.Gui.CleanRoomStartup/StartupInvocationHandler) <0x00087> at Banshee.Gui.GtkBaseClient.Startup<T> () <0x00073> at Banshee.Gui.GtkBaseClient.Startup<T> (string[]) <0x000eb> at Nereid.Client.Main (string[]) <0x00017> at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <0xffffffff> at (wrapper managed-to-native) System.AppDomain.ExecuteAssembly (System.AppDomain,System.Reflection.Assembly,string[]) <0xffffffff> at System.AppDomain.ExecuteAssemblyInternal (System.Reflection.Assembly,string[]) <0x0003b> at System.AppDomain.ExecuteAssembly (string,System.Security.Policy.Evidence,string[]) <0x00027> at (wrapper remoting-invoke-with-check) System.AppDomain.ExecuteAssembly (string,System.Security.Policy.Evidence,string[]) <0xffffffff> at System.AppDomain.ExecuteAssembly (string) <0x0001b> at (wrapper remoting-invoke-with-check) System.AppDomain.ExecuteAssembly (string) <0xffffffff> at Booter.Booter.BootClient (string) <0x0006b> at Booter.Booter.Main () <0x001b7> at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0xffffffff>
Thank you for your bug report. It looks like the Mono.Addins database might be corrupted. The folder that contains it is ~/.config/banshee-1/addin-db-001/ Could you try to make a backup copy of that folder and then remove it ? It should be re-created when Banshee starts, and the only difference should be that the Banshee extensions are back to their default enable/disabled state.
Thanks - that seems to have cured it! I deleted the entire ~/.config/banshee-1/addin-db-001 folder and then banshee started fine. I haven't rebooted yet but everything looks good so far. I wonder how that database got corrupted...
Can we close the bug ?
Yes, that's fine. Shame we don't know how the database got corrupted in the first place.
Lucas, did you make a backup of that folder before removing it? The key here is not to know how it got corrupted but how can MonoAddins be fixed to deal with corrupted data. Without your backup attached here we cannot fix the problem.
Hi Andrés. No, sorry, I did not backup that folder, and I've since upgraded to ubuntu 12.04. If this ever happens again I'll keep a backup.