GNOME Bugzilla – Bug 696111
Banshee hangs and uses 100% CPU on startup
Last modified: 2013-04-07 15:28:32 UTC
As the title says. Relevant --debug info: [7 Debug 18:24:13.933] Refreshing any podcasts that haven't been updated in over an hour [1 Info 18:24:14.010] Creating Accessible for Banshee.Collection.Gui.TrackListView (Banshee:18916): GLib-GObject-WARNING **: attempting to add an interface (AtkComponent) to class (__gtksharp_95_Hyena_Gui_BaseWidgetAccessible) after class_init (Banshee:18916): GLib-GObject-WARNING **: attempting to add an interface (AtkTable) to class (__gtksharp_96_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_TrackInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:18916): GLib-GObject-WARNING **: attempting to add an interface (AtkSelection) to class (__gtksharp_96_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_TrackInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init Exception in Gtk# callback delegate Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception. System.ArgumentException: Invalid signal name: model_changed at GLib.Signal.Emit (GLib.Object instance, System.String detailed_signal, System.Object[] args) [0x00000] in <filename unknown>:0 at Hyena.Data.Gui.Accessibility.ListViewAccessible`1[Banshee.Collection.TrackInfo].EmitModelChanged () [0x00000] in <filename unknown>:0 at Hyena.ThreadAssist.ProxyToMain (Hyena.InvokeHandler handler) [0x00000] in <filename unknown>:0 at Hyena.Data.Gui.Accessibility.ListViewAccessible`1[Banshee.Collection.TrackInfo].OnModelChanged (System.Object o, System.EventArgs a) [0x00000] in <filename unknown>:0 at Hyena.Data.Gui.Accessibility.ListViewAccessible`1[Banshee.Collection.TrackInfo]..ctor (GLib.Object widget) [0x00000] in <filename unknown>:0 at Hyena.Data.Gui.ListViewAccessibleFactory`1[Banshee.Collection.TrackInfo].OnCreateAccessible (GLib.Object obj) [0x00000] in <filename unknown>:0 at Atk.ObjectFactory+Marshaler.CreateAccessible_cb (IntPtr raw) [0x00000] in <filename unknown>:0 at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal) at Atk.ObjectFactory+Marshaler.CreateAccessible_cb(IntPtr raw) at Gtk.Application.gtk_main() at Gtk.Application.Run() at Banshee.Gui.GtkBaseClient.Run() at Banshee.Gui.GtkBaseClient.Startup() at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) at Banshee.Gui.GtkBaseClient.Startup() at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) at Nereid.Client.Main(System.String[] args) at System.AppDomain.ExecuteAssembly(System.AppDomain , System.Reflection.Assembly , System.String[] ) at System.AppDomain.ExecuteAssemblyInternal(System.Reflection.Assembly a, System.String[] args) at System.AppDomain.ExecuteAssembly(System.String assemblyFile, System.Security.Policy.Evidence assemblySecurity, System.String[] args) at System.AppDomain.ExecuteAssembly(System.String assemblyFile) at Booter.Booter.BootClient(System.String clientName) at Booter.Booter.Main()
Thanks for taking the time to report this bug. Can you tell us the distro you use and the version? Also, can you tell us the version of atk and gtk that it uses? Thanks
Ubuntu Raring Ringtail (13.04), current as of the time the bug was created. ATK: libatk1.0-0 (2.7.91-0ubuntu1) ATK accessibility toolkit GTK+: libgtk2.0-0 (2.24.16-1ubuntu2) GTK+ graphical user interface library libgtk-3-0 (3.6.4-0ubuntu6) GTK+ graphical user interface library I know it is an unreleased version of Ubuntu, but the defect seemed severe enough to make reporting the bug prudent. Replication should be easy -- all I did was install, update to the latest, and install the included Banshee deb. I tried to troubleshoot by erasing my configs and Banshee DB, too, even creating a new user... no dice.
Given that you're testing with such a bleeding edge distro, do you mind testing the gtk3 branch of banshee?
There's a GTK*3* branch of Banshee?? *gasp* Nope. I do not mind at ALL. ...how do I get it?
Yes, it's very experimental but should work: Bullet 2 of http://banshee.fm/download/development/ , after cloning, do "git checkout gtk3"
I can't seem to find a required dependency either in the Ubuntu repos, elsewhere, and even in the mono/glib-sharp source code repo: configure: error: Package requirements (glib-sharp-3.0 >= 2.99.1) were not met: No package 'glib-sharp-3.0' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. ...any pointers?
You need to install https://github.com/mono/gtk-sharp.git master branch.
Good news: It compiles! And I have 64-bit debs (of Banshee and GTK-Sharp 3.0 from Git) if anyone wants them. Bad news: It doesn't run. Crash report: Missing method System.Threading.Monitor::Enter(object,bool&) in assembly /usr/lib/mono/2.0/mscorlib.dll, referenced in assembly /usr/lib/mono/gac/dbus-sharp/1.0.0.0__5675b0c3093115b5/dbus-sharp.dll [Warn 17:43:59.575] DBus support could not be started. Disabling for this session. - System.MissingMethodException: Method not found: 'System.Threading.Monitor.Enter'. (in `dbus-sharp') at DBus.BusObject.GetObject (DBus.Connection conn, System.String bus_name, DBus.ObjectPath object_path, System.Type declType) [0x00000] in <filename unknown>:0 at DBus.Connection.GetObject (System.Type type, System.String bus_name, DBus.ObjectPath path) [0x00000] in <filename unknown>:0 at DBus.Connection.GetObject[IBus] (System.String bus_name, DBus.ObjectPath path) [0x00000] in <filename unknown>:0 at DBus.Bus..ctor (System.String address) [0x00000] in <filename unknown>:0 at DBus.Bus.Open (System.String address) [0x00000] in <filename unknown>:0 at DBus.Bus.get_System () [0x00000] in <filename unknown>:0 System.Exception: Unable to open the system message bus. (in `dbus-sharp') at DBus.Bus.get_System () [0x00000] in <filename unknown>:0 at DBus.BusG.Init () [0x00000] in <filename unknown>:0 at Banshee.ServiceStack.DBusConnection.Connect (System.String serviceName, Boolean init) [0x00000] in <filename unknown>:0 at Banshee.ServiceStack.DBusConnection.GrabDefaultName () [0x00000] in <filename unknown>:0 Missing method System.Threading.Monitor::Enter(object,bool&) in assembly /usr/lib/mono/2.0/mscorlib.dll, referenced in assembly /usr/lib/mono/gac/dbus-sharp/1.0.0.0__5675b0c3093115b5/dbus-sharp.dll [Info 17:43:59.603] Running Banshee 2.6.0: [git-checkout (linux-gnu, x86_64) @ 2013-03-19 17:09:15 CDT] Missing method System.Reflection.Assembly::op_Equality(Assembly,Assembly) in assembly /usr/lib/mono/2.0/mscorlib.dll, referenced in assembly /usr/lib/mono/gac/Mono.Addins/0.6.0.0__0738eb9f132ed756/Mono.Addins.dll Exception has been thrown by the target of an invocation. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: Method not found: 'System.Reflection.Assembly.op_Equality'. at Banshee.ServiceStack.ServiceManager.InitializeAddins () [0x00000] in <filename unknown>:0 at Banshee.ServiceStack.ServiceManager.DefaultInitialize () [0x00000] in <filename unknown>:0 at Banshee.ServiceStack.Application.Initialize () [0x00000] in <filename unknown>:0 at Banshee.Gui.GtkBaseClient.Initialize (Boolean registerCommonServices) [0x00000] in <filename unknown>:0 at Banshee.Gui.GtkBaseClient..ctor (Boolean initializeDefault, System.String defaultIconName) [0x00000] in <filename unknown>:0 at Banshee.Gui.GtkBaseClient..ctor () [0x00000] in <filename unknown>:0 at Nereid.Client..ctor () [0x00000] in <filename unknown>:0 at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&) at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0 at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0 at Banshee.Gui.GtkBaseClient.Startup () [0x00000] in <filename unknown>:0 at Hyena.Gui.CleanRoomStartup.Startup (Hyena.Gui.StartupInvocationHandler startup) [0x00000] in <filename unknown>:0
Oh, that is an issue that we have already "fixed" in master, but have not ported it to the gtk3 branch yet, can you cherry-pick this commit: https://git.gnome.org/browse/banshee/commit/?id=3d3f7899465ee46e634b53c236401f612dac1492 If that doesn't solve it, try cherry-picking this one as well: https://git.gnome.org/browse/banshee/commit/?id=4c590128f4ef00cdb0e833574d25441a578644f6
Good news: with those two changes cherry-picked, Banshee compiles and launches into a useful GUI. Bad news: Tools -> Re-scan music library causes the same symptoms as the bug report states (Banshee becomes unresponsive, uses 100% of whatever CPU core its got a hold of, and has actually crashed). Crash report: Marshaling activate signal Exception in Gtk# callback delegate Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary`2[System.IntPtr,System.Delegate].get_Item (IntPtr key) [0x00000] in <filename unknown>:0 at Gtk.Widget.add_Destroyed (System.EventHandler value) [0x00000] in <filename unknown>:0 at Hyena.Widgets.AnimatedWidget..ctor (Gtk.Widget widget, UInt32 duration, Easing easing, Blocking blocking, Boolean horizontal) [0x00000] in <filename unknown>:0 at Hyena.Widgets.AnimatedBox.Pack (Gtk.Widget widget, UInt32 duration, Easing easing, Blocking blocking, Boolean end) [0x00000] in <filename unknown>:0 at Hyena.Widgets.AnimatedBox.PackEnd (Gtk.Widget widget, UInt32 duration, Easing easing, Blocking blocking) [0x00000] in <filename unknown>:0 at Hyena.Widgets.AnimatedBox.PackEnd (Gtk.Widget widget, Easing easing) [0x00000] in <filename unknown>:0 at Banshee.Gui.Widgets.UserJobTileHost.AddJob (Hyena.Jobs.Job job) [0x00000] in <filename unknown>:0 at Banshee.Gui.Widgets.UserJobTileHost+<OnJobAdded>c__AnonStorey17.<>m__90 () [0x00000] in <filename unknown>:0 at Hyena.ThreadAssist.ProxyToMain (Hyena.InvokeHandler handler) [0x00000] in <filename unknown>:0 at Banshee.Gui.Widgets.UserJobTileHost.OnJobAdded (Hyena.Jobs.Job job) [0x00000] in <filename unknown>:0 at (wrapper delegate-invoke) <Module>:invoke_void__this___Job (Hyena.Jobs.Job) at Hyena.Jobs.Scheduler.Add (Hyena.Jobs.Job job) [0x00000] in <filename unknown>:0 at Banshee.ServiceStack.UserJob.Register () [0x00000] in <filename unknown>:0 at Banshee.Collection.RescanPipeline.BuildJob () [0x00000] in <filename unknown>:0 at Banshee.Collection.RescanPipeline..ctor (Banshee.Library.LibrarySource psource) [0x00000] in <filename unknown>:0 at Banshee.Gui.GlobalActions.<GlobalActions>m__98 (System.Object , System.EventArgs ) [0x00000] in <filename unknown>:0 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0 at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0 at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <filename unknown>:0 at GLib.Signal.ClosureInvokedCB (System.Object o, GLib.ClosureInvokedArgs args) [0x00000] in <filename unknown>:0 at GLib.SignalClosure.Invoke (GLib.ClosureInvokedArgs args) [0x00000] in <filename unknown>:0 at GLib.SignalClosure.MarshalCallback (IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data) [0x00000] in <filename unknown>:0 at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal) at GLib.SignalClosure.MarshalCallback(IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data) at Gtk.Application.gtk_main() at Gtk.Application.Run() at Banshee.Gui.GtkBaseClient.Run() at Banshee.Gui.GtkBaseClient.Startup() at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) at Banshee.Gui.GtkBaseClient.Startup() at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) at Nereid.Client.Main(System.String[] args) at System.AppDomain.ExecuteAssembly(System.AppDomain , System.Reflection.Assembly , System.String[] ) at System.AppDomain.ExecuteAssemblyInternal(System.Reflection.Assembly a, System.String[] args) at System.AppDomain.ExecuteAssembly(System.String assemblyFile, System.Security.Policy.Evidence assemblySecurity, System.String[] args) at System.AppDomain.ExecuteAssembly(System.String assemblyFile) at Booter.Booter.BootClient(System.String clientName) at Booter.Booter.Main()
(In reply to comment #11) > Good news: with those two changes cherry-picked, Banshee compiles and launches > into a useful GUI. Great! Thanks so much for testing. I've been able to reproduce the problem you found for 2.6.0 in 13.04 and I'll be committing a fix shortly. > Bad news: Tools -> Re-scan music library causes the same symptoms as the bug > report states (Banshee becomes unresponsive, uses 100% of whatever CPU core its > got a hold of, and has actually crashed). That is a completely different bug, can you create a new bug report for it?
Created attachment 240655 [details] [review] workaround for glib/glibsharp issue Note that this issue has been reverted for another cycle more (more info in bug 687659), so if Ubuntu properly upgrades to glib 2.36.1 we're covered and we would not need this patch. I would still commit it just in case (maybe only to the 2-6 branch?) Also, for gtk-sharp going forward, I have a fix ready, which I'll post as a pull request to the bug (https://bugzilla.xamarin.com/show_bug.cgi?id=11510).
Comment on attachment 240655 [details] [review] workaround for glib/glibsharp issue Thanks for all the investigations and the patch! I've committed it to hyena git master: https://git.gnome.org/browse/hyena/commit/?id=fec01af8d And also to the banshee-stable-2.6 branch, which will be included in Banshee 2.6.1.
This problem has been fixed in our software repository. The fix will go into the next software release. Thank you for your bug report.