GNOME Bugzilla – Bug 630249
Freezes or crashes with uncaught exception during library rescanning
Last modified: 2010-09-27 22:15:14 UTC
Hi, banshee 1.7.6 often freezes or aborts with an uncaught exception when rescanning the library. This doesn't happen on the same file and happens most of the time at around the 1000-2000th file. This is the exception: Exception in Gtk# callback delegate Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception. System.NullReferenceException: Object reference not set to an instance of an object at Banshee.Sources.Gui.SourceRowRenderer.RenderSelection (Gdk.Drawable drawable, Rectangle background_area, Boolean selected, StateType state) [0x00000] in <filename unknown>:0 at Banshee.Sources.Gui.SourceRowRenderer.Render (Gdk.Drawable drawable, Gtk.Widget widget, Rectangle background_area, Rectangle cell_area, Rectangle expose_area, CellRendererState flags) [0x00000] in <filename unknown>:0 at Gtk.CellRenderer.Render_cb (IntPtr item, IntPtr window, IntPtr widget, Gdk.Rectangle& background_area, Gdk.Rectangle& cell_area, Gdk.Rectangle& expose_area, CellRendererState flags) [0x00000] in <filename unknown>:0 at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal) at Gtk.CellRenderer.Render_cb(IntPtr item, IntPtr window, IntPtr widget, Rectangle ByRef background_area, Rectangle ByRef cell_area, Rectangle ByRef expose_area, CellRendererState flags) at Gtk.Widget.gtksharp_widget_base_expose_event(IntPtr , IntPtr ) at Gtk.Widget.OnExposeEvent(Gdk.EventExpose evnt) at Banshee.Sources.Gui.SourceView.OnExposeEvent(Gdk.EventExpose evnt) at Gtk.Widget.exposeevent_cb(IntPtr widget, IntPtr evnt) 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.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()
And other exceptions: [Info 13:59:54.493] Running Banshee 1.7.6: [Debian GNU/Linux unstable (sid) (linux-gnu, x86_64) @ 2010-09-20 10:25:27 CEST] [Info 13:59:54.895] Starting collection of anonymous usage data [Info 13:59:55.625] Updating web proxy from GConf [Info 13:59:55.728] All services are started 0.999589 [Info 13:59:56.848] nereid Client Started [Warn 13:59:56.967] Failed to load media-player-info file for Exception in Gtk# callback delegate Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception. System.NullReferenceException: Object reference not set to an instance of an object at Hyena.Widgets.RoundedFrame.DrawFrame (Cairo.Context cr, Rectangle clip) [0x00000] in <filename unknown>:0 at Hyena.Widgets.RoundedFrame.OnExposeEvent (Gdk.EventExpose evnt) [0x00000] in <filename unknown>:0 at Gtk.Widget.exposeevent_cb (IntPtr widget, IntPtr evnt) [0x00000] in <filename unknown>:0 at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal) at Gtk.Widget.exposeevent_cb(IntPtr widget, IntPtr evnt) 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.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() (Banshee:5083): GLib-CRITICAL **: g_source_remove: assertion `tag > 0' failed
And the freezing always happens right after updating the number of songs in the sources view
Of course it all works fine when running banshee in --debug mode :) I guess reproducing this will be quite easy if you delete your complete database and then let banshee rescan it and add all files again. Especially with >=2 cores this will probably crash or freeze very fast.
Hrm, I can't reproduce this. Had it rescan a few thousands songs. Sebastian, what Gtk+/distro are you using?
Debian with GTK+ 2.21.8, gtk# 2.12.10, cairo 1.10.0, mono 2.6.7
*** This bug has been marked as a duplicate of bug 627441 ***
*** Bug 629567 has been marked as a duplicate of this bug. ***