After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 671965 - Banshee hangs in Mono.Addins.Serialization.BinaryXmlReader.Skip ()
Banshee hangs in Mono.Addins.Serialization.BinaryXmlReader.Skip ()
Status: RESOLVED INCOMPLETE
Product: banshee
Classification: Other
Component: general
2.2.1
Other Linux
: Normal normal
: ---
Assigned To: Banshee Maintainers
Banshee Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-03-13 07:24 UTC by Chow Loong Jin
Modified: 2012-06-11 18:14 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Chow Loong Jin 2012-03-13 07:24:13 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>
Comment 1 Bertrand Lorentz 2012-03-13 18:31:03 UTC
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.
Comment 2 Lucas Partridge 2012-03-13 18:55:19 UTC
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...
Comment 3 Akhil Laddha 2012-04-27 04:29:22 UTC
Can we close the bug ?
Comment 4 Lucas Partridge 2012-04-29 11:45:31 UTC
Yes, that's fine. Shame we don't know how the database got corrupted in the first place.
Comment 5 Andrés G. Aragoneses (IRC: knocte) 2012-06-11 08:44:41 UTC
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.
Comment 6 Lucas Partridge 2012-06-11 18:14:36 UTC
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.