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 615892 - Crash on startup in ListViewAccessible
Crash on startup in ListViewAccessible
Status: RESOLVED FIXED
Product: banshee
Classification: Other
Component: general
git master
Other Linux
: Normal critical
: 1.x
Assigned To: Banshee Maintainers
Banshee Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-04-15 21:40 UTC by Sandy Armstrong
Modified: 2010-04-25 23:05 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Caveman approach to fixing startup crashes (2.61 KB, patch)
2010-04-15 22:00 UTC, Sandy Armstrong
reviewed Details | Review

Description Sandy Armstrong 2010-04-15 21:40:59 UTC
Here's the trace, which I guess implies that list_view.Model is null at this point:


** Running Mono with --debug   **
[1 Info  14:36:39.392] Running Banshee 1.6.0: [git-checkout (linux-gnu, i686) @ 2010-04-15 14:31:37 PDT]
[1 Debug 14:36:41.320] Initializing GTK

** (Banshee:8973): WARNING **: AT-SPI: Accessibility bus not found - Using session bus.

[1 Debug 14:36:41.377] Configuration client extension loaded (Banshee.GnomeBackend.GConfConfigurationClient)
[1 Debug 14:36:41.385] Using default gconf-base-key
[1 Debug 14:36:41.424] Bus.Session.RequestName ('org.bansheeproject.Banshee') replied with PrimaryOwner
[1 Debug 14:36:41.429] Core service started (DBusServiceManager, 0.000833s)
[1 Debug 14:36:41.431] Registering remote object /org/bansheeproject/Banshee/DBusCommandService (Banshee.ServiceStack.DBusCommandService) on org.bansheeproject.Banshee
[1 Debug 14:36:41.437] Core service started (DBusCommandService, 0.00815s)
[1 Debug 14:36:41.497] Opened SQLite connection to /home/sandy/.config/banshee-1/banshee.db
[1 Debug 14:36:41.497] Core service started (DbConnection, 0.059648s)
[1 Debug 14:36:41.500] Database version 41 is up to date
[1 Info  14:36:41.514] Starting collection of anonymous usage data
[1 Debug 14:36:41.591] Core service started (PreferenceService, 0.067474s)
[1 Debug 14:36:41.593] Registering remote object /org/bansheeproject/Banshee/SourceManager (Banshee.Sources.SourceManager) on org.bansheeproject.Banshee
[1 Debug 14:36:41.593] Core service started (SourceManager, 0.001658s)
[1 Debug 14:36:41.594] Core service started (MediaProfileManager, 0.000466s)
[1 Debug 14:36:41.613] Registering remote object /org/bansheeproject/Banshee/PlayerEngine (Banshee.MediaEngine.PlayerEngineService) on org.bansheeproject.Banshee
[1 Debug 14:36:41.617] Core service started (PlayerEngine, 0.023609s)
[1 Debug 14:36:41.635] IO provider extension loaded (Banshee.IO.Unix.Provider)
[1 Debug 14:36:41.643] Core service started (TranscoderService, 0.011716s)
[1 Debug 14:36:41.645] Registering remote object /org/bansheeproject/Banshee/PlaybackController (Banshee.PlaybackController.PlaybackControllerService) on org.bansheeproject.Banshee
[1 Debug 14:36:41.647] Core service started (PlaybackController, 0.003874s)
[1 Debug 14:36:41.648] Core service started (ImportSourceManager, 0.00039s)
[1 Debug 14:36:41.652] Core service started (LibraryImportManager, 0.004196s)
[1 Debug 14:36:41.652] Core service started (JobScheduler, 0.000576s)
[1 Debug 14:36:41.675] Core service started (HardwareManager, 0.022631s)
[1 Debug 14:36:41.677] Bus.Session.RequestName ('org.bansheeproject.CollectionIndexer') replied with PrimaryOwner
[1 Debug 14:36:41.678] Registering remote object /org/bansheeproject/Banshee/CollectionIndexerService (Banshee.Collection.Indexer.CollectionIndexerService) on org.bansheeproject.CollectionIndexer
[1 Debug 14:36:41.680] Core service started (CollectionIndexerService, 0.004961s)
[1 Debug 14:36:41.681] Core service started (SaveMetadataService, 0.001016s)
[1 Debug 14:36:41.707] Adding icon theme search path: /usr/share/banshee-1/icons
[1 Debug 14:36:41.708] Core service started (GtkElementsService, 0.027045s)
[1 Debug 14:36:41.709] Core service started (InterfaceActionService, 0.000948s)
[1 Debug 14:36:41.847] Registering remote object /org/bansheeproject/Banshee/GlobalUIActions (Banshee.Gui.GlobalActions) on org.bansheeproject.Banshee
[1 Debug 14:36:41.848] Album artwork path set to /home/sandy/.cache/media-art
[1 Debug 14:36:41.855] Core service started (ArtworkManager, 0.007402s)
[1 Debug 14:36:42.066] Adding context page lastfm-recommendations
[1 Debug 14:36:42.087] Adding context page wikipedia
[1 Debug 14:36:42.399] Constructed Nereid interface: 0.499851s
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.Data.Gui.Accessibility.ListViewAccessible`1[Banshee.Collection.TrackInfo]..ctor (GLib.Object widget) [0x0006e] in /home/sandy/git-gnome/banshee/src/Libraries/Hyena.Gui/Hyena.Data.Gui/Accessibility/ListViewAccessible.cs:57 
  at Hyena.Data.Gui.ListViewAccessibleFactory`1[Banshee.Collection.TrackInfo].OnCreateAccessible (GLib.Object obj) [0x00000] in /home/sandy/git-gnome/banshee/src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Accessible.cs:168 
  at Atk.ObjectFactory+Marshaler.CreateAccessible_cb (IntPtr raw) [0x0002c] in /usr/src/packages/BUILD/gtk-sharp-2.12.10/atk/generated/ObjectFactory.custom:78 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal) in /usr/src/packages/BUILD/gtk-sharp-2.12.10/glib/ExceptionManager.cs:line 58
   at Atk.ObjectFactory+Marshaler.CreateAccessible_cb(IntPtr raw) in /usr/src/packages/BUILD/gtk-sharp-2.12.10/atk/generated/ObjectFactory.custom:line 83
   at Gtk.Widget.gtk_widget_show(IntPtr )
   at Gtk.Widget.Show() in /usr/src/packages/BUILD/gtk-sharp-2.12.10/gtk/generated/Widget.cs:line 4088
   at Banshee.Gui.BaseClientWindow.InitialShowPresent() in /home/sandy/git-gnome/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs:line 106
   at Nereid.PlayerInterface.Initialize() in /home/sandy/git-gnome/banshee/src/Clients/Nereid/Nereid/PlayerInterface.cs:line 103
   at Banshee.Gui.BaseClientWindow.InitializeWindow() in /home/sandy/git-gnome/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs:line 136
   at Banshee.Gui.BaseClientWindow..ctor(System.String title, System.String configNameSpace, Int32 defaultWidth, Int32 defaultHeight) in /home/sandy/git-gnome/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/BaseClientWindow.cs:line 78
   at Nereid.PlayerInterface..ctor()
   at System.Reflection.MonoCMethod.InternalInvoke(System.Object , System.Object[] , System.Exception ByRef )
   at System.Reflection.MonoCMethod.Invoke(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System.Reflection/MonoMethod.cs:line 504
   at System.Reflection.MonoCMethod.Invoke(BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System.Reflection/MonoMethod.cs:line 519
   at System.Reflection.ConstructorInfo.Invoke(System.Object[] parameters) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System.Reflection/ConstructorInfo.cs:line 77
   at System.Activator.CreateInstance(System.Type type, Boolean nonPublic) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System/Activator.cs:line 337
   at System.Activator.CreateInstance(System.Type type) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System/Activator.cs:line 219
   at Banshee.ServiceStack.ServiceManager.RegisterService(System.Type type) in /home/sandy/git-gnome/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 156
   at Banshee.ServiceStack.ServiceManager.Run() in /home/sandy/git-gnome/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 129
   at Banshee.ServiceStack.Application.Run() in /home/sandy/git-gnome/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:line 108
   at Banshee.Gui.GtkBaseClient.Initialize(Boolean registerCommonServices) in /home/sandy/git-gnome/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 160
   at Banshee.Gui.GtkBaseClient..ctor(Boolean initializeDefault, System.String defaultIconName) in /home/sandy/git-gnome/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 95
   at Banshee.Gui.GtkBaseClient..ctor()
   at Nereid.Client..ctor()
   at System.Reflection.MonoCMethod.InternalInvoke(System.Object , System.Object[] , System.Exception ByRef )
   at System.Reflection.MonoCMethod.Invoke(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System.Reflection/MonoMethod.cs:line 504
   at System.Reflection.MonoCMethod.Invoke(BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System.Reflection/MonoMethod.cs:line 519
   at System.Reflection.ConstructorInfo.Invoke(System.Object[] parameters) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System.Reflection/ConstructorInfo.cs:line 77
   at System.Activator.CreateInstance(System.Type type, Boolean nonPublic) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System/Activator.cs:line 337
   at System.Activator.CreateInstance(System.Type type) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System/Activator.cs:line 219
   at Banshee.Gui.GtkBaseClient.Startup() in /home/sandy/git-gnome/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 82
   at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) in /home/sandy/git-gnome/banshee/src/Libraries/Hyena.Gui/Hyena.Gui/CleanRoomStartup.cs:line 54
   at Banshee.Gui.GtkBaseClient.Startup() in /home/sandy/git-gnome/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 77
   at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) in /home/sandy/git-gnome/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 67
   at Nereid.Client.Main(System.String[] args) in /home/sandy/git-gnome/banshee/src/Clients/Nereid/Nereid/Client.cs:line 54
   at System.AppDomain.ExecuteAssembly(System.Reflection.Assembly , System.String[] )
   at System.AppDomain.ExecuteAssemblyInternal(System.Reflection.Assembly a, System.String[] args) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System/AppDomain.cs:line 556
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile, System.Security.Policy.Evidence assemblySecurity, System.String[] args) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System/AppDomain.cs:line 539
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile) in /usr/src/packages/BUILD/mono-2.6.3/mcs/class/corlib/System/AppDomain.cs:line 528
   at Booter.Booter.BootClient(System.String clientName) in /home/sandy/git-gnome/banshee/src/Clients/Booter/Booter/Entry.cs:line 106
   at Booter.Booter.Main() in /home/sandy/git-gnome/banshee/src/Clients/Booter/Booter/Entry.cs:line 100
Comment 1 Sandy Armstrong 2010-04-15 22:00:12 UTC
Created attachment 158846 [details] [review]
Caveman approach to fixing startup crashes
Comment 2 Sandy Armstrong 2010-04-15 22:01:10 UTC
BTW, presumably other people aren't seeing this crash because they don't have gtk-sharp 2.12.10, and thus aren't building with a11y support.
Comment 3 Alexander Kojevnikov 2010-04-17 00:56:42 UTC
Review of attachment 158846 [details] [review]:

I don't have a11y enabled but the patch looks good. Maybe also address those TODOs while you are at it?
Comment 4 Gabriel Burt 2010-04-25 23:05:36 UTC
Fixed:

commit 864e902ce66b3a0634d13238dabc4421601eef3d
Author: Gabriel Burt <gabriel.burt@gmail.com>
Date:   Sun Apr 25 16:01:48 2010

    [Hyena] Fix ListView a11y crasher
    
    ListViewAccessible wasn't setup to support the fact that a ListView's
    model (and therefore its Selection) can change over time (bgo#615892).
    This patch was based on one from Sandy Armstrong.