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 683359 - Banshee crashes on startup (SourceView getting null values or unexpected types for PodcastSource...?)
Banshee crashes on startup (SourceView getting null values or unexpected type...
Status: VERIFIED FIXED
Product: banshee
Classification: Other
Component: general
2.5.0
Other Linux
: Normal major
: ---
Assigned To: Banshee Maintainers
Banshee Maintainers
: 675587 684714 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-09-04 19:11 UTC by Andy Goar
Modified: 2014-12-15 01:42 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch.diff (841 bytes, patch)
2012-09-07 17:08 UTC, Andrés G. Aragoneses (IRC: knocte)
none Details | Review
patch v2 (1.04 KB, text/plain)
2012-09-09 01:26 UTC, Andrés G. Aragoneses (IRC: knocte)
  Details
Patch to avoid crashing atleast (2.39 KB, patch)
2012-09-12 18:14 UTC, Andrés G. Aragoneses (IRC: knocte)
committed Details | Review
Resolution (1.93 KB, patch)
2014-12-14 20:47 UTC, Nicholas Little
committed Details | Review

Description Andy Goar 2012-09-04 19:11:59 UTC
After creating a smart playlist that includes other playlists, Banshee crashes immediately on startup. I do not know if it is the playlist that is causing the issue, but it is the last operation I performed before the crashinng started. Now I'm unable to get Banshee to start successfully.


Stack dump:

andyg@AndysLaptop:~$ banshee
[Info  12:52:33.515] Running Banshee 2.5.0: [Ubuntu 12.04.1 LTS c2e24fd (linux-gnu, i686) @ 2012-08-26 21:45:09 UTC]
[Info  12:52:34.907] Updating web proxy from GConf
[Info  12:52:35.025] All services are started 1.159601
[Info  12:52:36.534] Creating Accessible for Banshee.Collection.Gui.TrackListView
[Info  12:52:36.575] Creating Accessible for Banshee.Collection.Gui.QueryFilterView`1[System.String]
[Info  12:52:36.581] Creating Accessible for Banshee.Collection.Gui.ArtistListView
[Info  12:52:36.583] Creating Accessible for Banshee.Collection.Gui.YearListView
[Info  12:52:36.585] Creating Accessible for Banshee.Collection.Gui.AlbumListView
[Info  12:52:36.637] nereid Client Started
[Info  12:52:36.774] GStreamer version 0.10.36.0, gapless: True, replaygain: False
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.SourceView.<BuildColumns>m__D5 (CellLayout layout, Gtk.CellRenderer cell, TreeModel model, TreeIter iter) [0x00000] in <filename unknown>:0 
  at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback (IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] in <filename unknown>:0 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback(IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.TreeStore.gtk_tree_store_insert(IntPtr , TreeIter ByRef , IntPtr , Int32 )
   at Gtk.TreeStore.InsertNode(Int32 position)
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source, TreeIter parent)
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source)
   at Banshee.Sources.Gui.SourceModel+<OnSourceAdded>c__AnonStorey2F.<>m__C8()
   at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler)
   at Banshee.Sources.Gui.SourceModel.OnSourceAdded(Banshee.Sources.SourceAddedArgs args)
   at System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod , System.Object , System.Object[] , System.Exception ByRef )
   at System.Reflection.MonoMethod.Invoke(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(System.Object obj, System.Object[] parameters)
   at System.Delegate.DynamicInvokeImpl(System.Object[] args)
   at System.MulticastDelegate.DynamicInvokeImpl(System.Object[] args)
   at System.Delegate.DynamicInvoke(System.Object[] args)
   at Hyena.EventExtensions.SafeInvoke(Banshee.Sources.SourceAddedHandler event, System.Object[] args)
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source, Boolean isDefault)
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source)
   at Banshee.Podcasting.PodcastService.DelayedInitialize()
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize(IService service)
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize()
   at Banshee.ServiceStack.ServiceManager.OnClientStarted(Banshee.ServiceStack.Client client)
   at <Module>.invoke_void__this___Client(Banshee.ServiceStack.Client )
   at Banshee.ServiceStack.Application.OnClientStarted(Banshee.ServiceStack.Client client)
   at Banshee.ServiceStack.Client.OnStarted()
   at Banshee.Gui.GtkBaseClient.<Run>m__A0()
   at Banshee.Gui.GtkBaseClient+<RunIdle>c__AnonStorey1D.<>m__A3()
   at GLib.Idle+IdleProxy.Handler()
   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()
Comment 1 Andy Goar 2012-09-04 19:13:39 UTC
Since I can reproduce this at will, I would be glad to help in any way I can to debug the issue. Please let me know if there is any additional info you would like, or things you would like me to try.
Comment 2 Andrés G. Aragoneses (IRC: knocte) 2012-09-04 19:38:15 UTC
Can we have the same log, but calling banshee with the "--debug" argument?
Comment 3 Andy Goar 2012-09-04 19:43:00 UTC
Here you go:


andyg@AndysLaptop:~$ banshee --debug
** Running Mono with --debug   **
[1 Debug 13:40:22.634] Bus.Session.RequestName ('org.bansheeproject.Banshee') replied with PrimaryOwner
[1 Info  13:40:22.655] Running Banshee 2.5.0: [Ubuntu 12.04.1 LTS c2e24fd (linux-gnu, i686) @ 2012-08-26 21:45:09 UTC]
[1 Debug 13:40:22.667] Initializing GTK
[1 Debug 13:40:24.242] Post-Initializing GTK
[1 Debug 13:40:24.259] Configuration client extension loaded (Banshee.GnomeBackend.GConfConfigurationClient)
[1 Debug 13:40:24.263] Using default gconf-base-key
[1 Debug 13:40:24.376] Core service started (DBusServiceManager, 0.001925)
[1 Debug 13:40:24.380] Registering remote object /org/bansheeproject/Banshee/DBusCommandService (Banshee.ServiceStack.DBusCommandService) on org.bansheeproject.Banshee
[1 Debug 13:40:24.390] Core service started (DBusCommandService, 0.012681)
[1 Debug 13:40:24.433] Opened SQLite (version 3.7.9) connection to /home/andyg/.config/banshee-1/banshee.db
[1 Debug 13:40:24.434] Core service started (DbConnection, 0.043684)
[1 Debug 13:40:24.445] Database version 45 is up to date
[1 Debug 13:40:24.483] Core service started (PreferenceService, 0.017448)
[1 Debug 13:40:24.492] Core service started (Network, 0.00908)
[1 Debug 13:40:24.493] Registering remote object /org/bansheeproject/Banshee/SourceManager (Banshee.Sources.SourceManager) on org.bansheeproject.Banshee
[1 Debug 13:40:24.493] Core service started (SourceManager, 0.000992)
[1 Debug 13:40:24.501] Core service started (MediaProfileManager, 0.000394)
[1 Debug 13:40:24.505] Registering remote object /org/bansheeproject/Banshee/PlayerEngine (Banshee.MediaEngine.PlayerEngineService) on org.bansheeproject.Banshee
[1 Debug 13:40:24.508] Core service started (PlayerEngine, 0.007439)
[1 Debug 13:40:24.529] Registering remote object /org/bansheeproject/Banshee/PlaybackController (Banshee.PlaybackController.PlaybackControllerService) on org.bansheeproject.Banshee
[1 Debug 13:40:24.530] Core service started (PlaybackController, 0.004244)
[1 Debug 13:40:24.538] Starting - Startup Job
[1 Debug 13:40:24.540] Core service started (JobScheduler, 0.00955)
[1 Debug 13:40:24.555] IO provider extension loaded (Banshee.IO.Gio.Provider)
[1 Debug 13:40:24.599] Loaded HardwareManager backend: Banshee.Hardware.Gio
[1 Debug 13:40:24.601] Core service started (HardwareManager, 0.061551)
[1 Debug 13:40:24.604] Bus.Session.RequestName ('org.bansheeproject.CollectionIndexer') replied with PrimaryOwner
[1 Debug 13:40:24.605] Registering remote object /org/bansheeproject/Banshee/CollectionIndexerService (Banshee.Collection.Indexer.CollectionIndexerService) on org.bansheeproject.CollectionIndexer
[1 Debug 13:40:24.607] Core service started (CollectionIndexerService, 0.005855)
[1 Debug 13:40:24.609] Core service started (SaveTrackMetadataService, 0.001877)
[1 Debug 13:40:24.623] Adding icon theme search path: /usr/share/banshee/icons
[1 Debug 13:40:24.624] Core service started (GtkElementsService, 0.014892)
[1 Debug 13:40:24.626] Core service started (InterfaceActionService, 0.001908)
[1 Debug 13:40:24.781] Extension actions loaded: MetadataFixActions
[1 Debug 13:40:24.782] Registering remote object /org/bansheeproject/Banshee/GlobalUIActions (Banshee.Gui.GlobalActions) on org.bansheeproject.Banshee
[1 Debug 13:40:24.784] Album artwork path set to /home/andyg/.cache/media-art
[1 Debug 13:40:24.806] Core service started (ArtworkManager, 0.024251)
[1 Debug 13:40:24.807] Core service started (BookmarksService, 0.000212)
[1 Debug 13:40:25.286] Constructed Nereid interface: 0.426961
[1 Debug 13:40:25.362] Creating new surface cache for 90px images, capped at 0.25 MiB (8 items)
[1 Debug 13:40:25.416] Registering remote object /org/bansheeproject/Banshee/ClientWindow (Nereid.PlayerInterface) on org.bansheeproject.Banshee
[1 Debug 13:40:25.416] Core service started (NereidPlayerInterface, 0.595082)
[1 Debug 13:40:25.424] Extension service started (PodcastService, 0.005681)
[1 Debug 13:40:25.427] Extension service started (BooScriptService, 0.00292)
[1 Debug 13:40:25.429] Extension service started (DapService, 0.001313)
[1 Debug 13:40:25.432] Extension service started (CoverArtService, 0.003131)
[1 Debug 13:40:25.433] Extension service started (DaapService, 0.001194)
[1 Debug 13:40:25.442] Extension service started (BpmService, 0.009239)
[1 Info  13:40:25.449] Updating web proxy from GConf
[1 Debug 13:40:25.460] Direct connection, no proxy in use
[1 Debug 13:40:25.483] Extension service started (GnomeService, 0.040054)
[1 Debug 13:40:25.513] Extension service started (GStreamerCoreService, 0.030538)
[1 Debug 13:40:25.526] Extension service started (MprisService, 0.012904)
[1 Debug 13:40:25.564] Extension service started (SoundMenuService, 0.037287)
[1 Debug 13:40:25.589] Extension service started (AudioCdService, 0.025428)
[1 Debug 13:40:25.591] Extension service started (DvdService, 0.001647)
[1 Debug 13:40:25.612] Using GNOME 2.22 API for Multimedia Keys
[1 Debug 13:40:25.612] Extension service started (MultimediaKeysService, 0.020639)
[1 Info  13:40:25.613] All services are started 1.310974
[1 Debug 13:40:26.207] Creating Pango.Layout, configuring Cairo.Context
[1 Debug 13:40:26.358] Extension source loaded: Now Playing
[1 Debug 13:40:26.390] Extension source loaded: Audiobooks
[1 Debug 13:40:26.396] Extension source loaded: Miro Guide
[1 Debug 13:40:26.586] Registering remote object /org/bansheeproject/Banshee/SourceManager/PlayQueue (Banshee.PlayQueue.PlayQueueSource) on org.bansheeproject.Banshee
[1 Debug 13:40:26.586] Extension source loaded: Play Queue
[1 Debug 13:40:26.638] Extension source loaded: File System Queue
[1 Debug 13:40:26.648] Starting GTK main loop
[1 Debug 13:40:26.962] Creating Pango.Layout, configuring Cairo.Context
[1 Debug 13:40:27.012] Creating Pango.Layout, configuring Cairo.Context
[1 Info  13:40:27.217] Creating Accessible for Banshee.Collection.Gui.TrackListView
[1 Info  13:40:27.264] Creating Accessible for Banshee.Collection.Gui.QueryFilterView`1[System.String]
[1 Info  13:40:27.271] Creating Accessible for Banshee.Collection.Gui.ArtistListView
[1 Info  13:40:27.274] Creating Accessible for Banshee.Collection.Gui.YearListView
[1 Info  13:40:27.276] Creating Accessible for Banshee.Collection.Gui.AlbumListView
[1 Info  13:40:27.337] nereid Client Started
[1 Debug 13:40:27.339] Delayed Initializating Banshee.MediaEngine.PlayerEngineService
[1 Debug 13:40:27.368] (libbanshee:player) Audiosink has volume: YES
[1 Debug 13:40:27.391] (libbanshee:player) Using system (gst-plugins-good) equalizer element
[1 Debug 13:40:27.471] Player state change: NotReady -> Ready
[1 Debug 13:40:27.477] Loaded equalizer presets: 0.000252
[1 Debug 13:40:27.485] Selected equalizer: Pop
[1 Debug 13:40:27.489] Syncing equalizer to engine: Pop
[1 Debug 13:40:27.494] Player state change: Ready -> Idle
[1 Debug 13:40:27.499] (libbanshee:player) Disabled ReplayGain
[1 Info  13:40:27.501] GStreamer version 0.10.36.0, gapless: True, replaygain: False
[1 Debug 13:40:27.511] Delayed Initializating Banshee.Podcasting.PodcastService
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.SourceView.<BuildColumns>m__D5 (CellLayout layout, Gtk.CellRenderer cell, TreeModel model, TreeIter iter) [0x00000] in <filename unknown>:0 
  at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback (IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] in <filename unknown>:0 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback(IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.TreeStore.gtk_tree_store_insert(IntPtr , TreeIter ByRef , IntPtr , Int32 )
   at Gtk.TreeStore.InsertNode(Int32 position)
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source, TreeIter parent)
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source)
   at Banshee.Sources.Gui.SourceModel+<OnSourceAdded>c__AnonStorey2F.<>m__C8()
   at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler)
   at Banshee.Sources.Gui.SourceModel.OnSourceAdded(Banshee.Sources.SourceAddedArgs args)
   at System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod , System.Object , System.Object[] , System.Exception ByRef )
   at System.Reflection.MonoMethod.Invoke(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(System.Object obj, System.Object[] parameters)
   at System.Delegate.DynamicInvokeImpl(System.Object[] args)
   at System.MulticastDelegate.DynamicInvokeImpl(System.Object[] args)
   at System.Delegate.DynamicInvoke(System.Object[] args)
   at Hyena.EventExtensions.SafeInvoke(Banshee.Sources.SourceAddedHandler event, System.Object[] args)
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source, Boolean isDefault)
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source)
   at Banshee.Podcasting.PodcastService.DelayedInitialize()
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize(IService service)
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize()
   at Banshee.ServiceStack.ServiceManager.OnClientStarted(Banshee.ServiceStack.Client client)
   at <Module>.invoke_void__this___Client(Banshee.ServiceStack.Client )
   at Banshee.ServiceStack.Application.OnClientStarted(Banshee.ServiceStack.Client client)
   at Banshee.ServiceStack.Client.OnStarted()
   at Banshee.Gui.GtkBaseClient.<Run>m__A0()
   at Banshee.Gui.GtkBaseClient+<RunIdle>c__AnonStorey1D.<>m__A3()
   at GLib.Idle+IdleProxy.Handler()
   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)



Is there anything else I can supply that would help out?
Comment 4 Andrés G. Aragoneses (IRC: knocte) 2012-09-05 12:00:41 UTC
Thanks, is there any chance that you can install debug symbols for mono and gtk-sharp and run that again?

Additionally, do you have expertise in compiling software? Would you be willing to try to compile Banshee yourself?

Thanks again.
Comment 5 Andy Goar 2012-09-05 14:22:22 UTC
I Sure can. I'm at work now, and will not get to it until this afternoon.

P.S. By chance does anyone have any idea what the package for gtk# debug symbols is in Ubuntu? I Looked for gtk-sharp-dbg, gtksharp-dbg, gtk#-dbg, etc, etc, etc. Nothing. I have the mono debug symbolsloaded, and have a dump that includes it, it that is of any help.
Comment 6 Andy Goar 2012-09-05 15:21:30 UTC
Here is the dump with mono and Banshee debug symbols added. Still looking for gtk# debug symbols.



andyg@AndysLaptop:~$ banshee --debug
** Running Mono with --debug   **
[1 Debug 09:18:58.312] Bus.Session.RequestName ('org.bansheeproject.Banshee') replied with PrimaryOwner
[1 Info  09:18:58.343] Running Banshee 2.5.0: [Ubuntu 12.04.1 LTS c2e24fd (linux-gnu, i686) @ 2012-08-26 21:45:09 UTC]
[1 Debug 09:18:58.361] Initializing GTK
[1 Debug 09:19:00.559] Post-Initializing GTK
[1 Debug 09:19:00.584] Configuration client extension loaded (Banshee.GnomeBackend.GConfConfigurationClient)
[1 Debug 09:19:00.589] Using default gconf-base-key
[1 Debug 09:19:00.753] Core service started (DBusServiceManager, 0.002696)
[1 Debug 09:19:00.758] Registering remote object /org/bansheeproject/Banshee/DBusCommandService (Banshee.ServiceStack.DBusCommandService) on org.bansheeproject.Banshee
[1 Debug 09:19:00.772] Core service started (DBusCommandService, 0.018646)
[1 Debug 09:19:00.830] Opened SQLite (version 3.7.9) connection to /home/andyg/.config/banshee-1/banshee.db
[1 Debug 09:19:00.831] Core service started (DbConnection, 0.058147)
[1 Debug 09:19:00.842] Database version 45 is up to date
[1 Debug 09:19:00.894] Core service started (PreferenceService, 0.022054)
[1 Debug 09:19:00.907] Core service started (Network, 0.013091)
[1 Debug 09:19:00.909] Registering remote object /org/bansheeproject/Banshee/SourceManager (Banshee.Sources.SourceManager) on org.bansheeproject.Banshee
[1 Debug 09:19:00.909] Core service started (SourceManager, 0.001433)
[1 Debug 09:19:00.919] Core service started (MediaProfileManager, 0.000484)
[1 Debug 09:19:00.925] Registering remote object /org/bansheeproject/Banshee/PlayerEngine (Banshee.MediaEngine.PlayerEngineService) on org.bansheeproject.Banshee
[1 Debug 09:19:00.929] Core service started (PlayerEngine, 0.009635)
[1 Debug 09:19:00.958] Registering remote object /org/bansheeproject/Banshee/PlaybackController (Banshee.PlaybackController.PlaybackControllerService) on org.bansheeproject.Banshee
[1 Debug 09:19:00.960] Core service started (PlaybackController, 0.005709)
[1 Debug 09:19:00.971] Starting - Startup Job
[1 Debug 09:19:00.973] Core service started (JobScheduler, 0.013023)
[1 Debug 09:19:00.995] IO provider extension loaded (Banshee.IO.Gio.Provider)
[1 Debug 09:19:01.061] Loaded HardwareManager backend: Banshee.Hardware.Gio
[1 Debug 09:19:01.064] Core service started (HardwareManager, 0.091176)
[1 Debug 09:19:01.067] Bus.Session.RequestName ('org.bansheeproject.CollectionIndexer') replied with PrimaryOwner
[1 Debug 09:19:01.069] Registering remote object /org/bansheeproject/Banshee/CollectionIndexerService (Banshee.Collection.Indexer.CollectionIndexerService) on org.bansheeproject.CollectionIndexer
[1 Debug 09:19:01.072] Core service started (CollectionIndexerService, 0.007579)
[1 Debug 09:19:01.075] Core service started (SaveTrackMetadataService, 0.002831)
[1 Debug 09:19:01.090] Adding icon theme search path: /usr/share/banshee/icons
[1 Debug 09:19:01.091] Core service started (GtkElementsService, 0.016301)
[1 Debug 09:19:01.094] Core service started (InterfaceActionService, 0.002725)
[1 Debug 09:19:01.318] Extension actions loaded: MetadataFixActions
[1 Debug 09:19:01.319] Registering remote object /org/bansheeproject/Banshee/GlobalUIActions (Banshee.Gui.GlobalActions) on org.bansheeproject.Banshee
[1 Debug 09:19:01.322] Album artwork path set to /home/andyg/.cache/media-art
[1 Debug 09:19:01.366] Core service started (ArtworkManager, 0.046128)
[1 Debug 09:19:01.366] Core service started (BookmarksService, 0.000306)
[1 Debug 09:19:02.051] Constructed Nereid interface: 0.614781
[1 Debug 09:19:02.172] Creating new surface cache for 90px images, capped at 0.25 MiB (8 items)
[1 Debug 09:19:02.245] Registering remote object /org/bansheeproject/Banshee/ClientWindow (Nereid.PlayerInterface) on org.bansheeproject.Banshee
[1 Debug 09:19:02.246] Core service started (NereidPlayerInterface, 0.859825)
[1 Debug 09:19:02.253] Extension service started (PodcastService, 0.005386)
[1 Debug 09:19:02.257] Extension service started (BooScriptService, 0.003317)
[1 Debug 09:19:02.258] Extension service started (DapService, 0.001544)
[1 Debug 09:19:02.263] Extension service started (CoverArtService, 0.004305)
[1 Debug 09:19:02.265] Extension service started (DaapService, 0.001676)
[1 Info  09:19:02.273] Updating web proxy from GConf
[1 Debug 09:19:02.288] Direct connection, no proxy in use
[1 Debug 09:19:02.319] Extension service started (GnomeService, 0.053983)
[1 Debug 09:19:02.335] Extension service started (BpmService, 0.014961)
[1 Debug 09:19:02.384] Extension service started (GStreamerCoreService, 0.049069)
[1 Debug 09:19:02.403] Extension service started (MprisService, 0.019407)
[1 Debug 09:19:02.465] Extension service started (SoundMenuService, 0.061942)
[1 Debug 09:19:02.517] Extension service started (AudioCdService, 0.050848)
[1 Debug 09:19:02.519] Extension service started (DvdService, 0.00185)
[1 Debug 09:19:02.566] Using GNOME 2.22 API for Multimedia Keys
[1 Debug 09:19:02.567] Extension service started (MultimediaKeysService, 0.046957)
[1 Info  09:19:02.569] All services are started 1.921067
[1 Debug 09:19:03.316] Creating Pango.Layout, configuring Cairo.Context
[1 Debug 09:19:03.547] Extension source loaded: Now Playing
[1 Debug 09:19:03.598] Extension source loaded: Audiobooks
[1 Debug 09:19:03.607] Extension source loaded: Miro Guide
[1 Debug 09:19:03.885] Registering remote object /org/bansheeproject/Banshee/SourceManager/PlayQueue (Banshee.PlayQueue.PlayQueueSource) on org.bansheeproject.Banshee
[1 Debug 09:19:03.885] Extension source loaded: Play Queue
[1 Debug 09:19:03.961] Extension source loaded: File System Queue
[1 Debug 09:19:03.970] Starting GTK main loop
[1 Debug 09:19:04.370] Creating Pango.Layout, configuring Cairo.Context
[1 Debug 09:19:04.440] Creating Pango.Layout, configuring Cairo.Context
[1 Info  09:19:04.727] Creating Accessible for Banshee.Collection.Gui.TrackListView
[1 Info  09:19:04.813] Creating Accessible for Banshee.Collection.Gui.QueryFilterView`1[System.String]
[1 Info  09:19:04.824] Creating Accessible for Banshee.Collection.Gui.ArtistListView
[1 Info  09:19:04.827] Creating Accessible for Banshee.Collection.Gui.YearListView
[1 Info  09:19:04.830] Creating Accessible for Banshee.Collection.Gui.AlbumListView
[1 Info  09:19:04.935] nereid Client Started
[1 Debug 09:19:04.938] Delayed Initializating Banshee.MediaEngine.PlayerEngineService
[1 Debug 09:19:04.976] (libbanshee:player) Audiosink has volume: YES
[1 Debug 09:19:05.023] (libbanshee:player) Using system (gst-plugins-good) equalizer element
[1 Debug 09:19:05.145] Player state change: NotReady -> Ready
[1 Debug 09:19:05.153] Loaded equalizer presets: 0.000339
[1 Debug 09:19:05.163] Selected equalizer: Pop
[1 Debug 09:19:05.169] Syncing equalizer to engine: Pop
[1 Debug 09:19:05.176] Player state change: Ready -> Idle
[1 Debug 09:19:05.185] (libbanshee:player) Disabled ReplayGain
[1 Info  09:19:05.188] GStreamer version 0.10.36.0, gapless: True, replaygain: False
[1 Debug 09:19:05.196] Delayed Initializating Banshee.Podcasting.PodcastService
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.SourceView.<BuildColumns>m__D5 (CellLayout layout, Gtk.CellRenderer cell, TreeModel model, TreeIter iter) [0x00011] in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:137 
  at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback (IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] in <filename unknown>:0 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback(IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.TreeStore.gtk_tree_store_insert(IntPtr , TreeIter ByRef , IntPtr , Int32 )
   at Gtk.TreeStore.InsertNode(Int32 position)
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source, TreeIter parent) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 215
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 192
   at Banshee.Sources.Gui.SourceModel+<OnSourceAdded>c__AnonStorey2F.<>m__C8() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 97
   at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Hyena/Hyena/Hyena/ThreadAssist.cs:line 103
   at Banshee.Sources.Gui.SourceModel.OnSourceAdded(Banshee.Sources.SourceAddedArgs args) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 96
   at System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod , System.Object , System.Object[] , System.Exception ByRef )
   at System.Reflection.MonoMethod.Invoke(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System.Reflection/MonoMethod.cs:line 226
   at System.Reflection.MethodBase.Invoke(System.Object obj, System.Object[] parameters) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System.Reflection/MethodBase.cs:line 96
   at System.Delegate.DynamicInvokeImpl(System.Object[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/Delegate.cs:line 408
   at System.MulticastDelegate.DynamicInvokeImpl(System.Object[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/MulticastDelegate.cs:line 70
   at System.Delegate.DynamicInvoke(System.Object[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/Delegate.cs:line 382
   at Hyena.EventExtensions.SafeInvoke(Banshee.Sources.SourceAddedHandler event, System.Object[] args) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Hyena/Hyena/Hyena/EventArgs.cs:line 55
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source, Boolean isDefault) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:line 183
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:line 148
   at Banshee.Podcasting.PodcastService.DelayedInitialize() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:line 237
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize(IService service) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 282
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 268
   at Banshee.ServiceStack.ServiceManager.OnClientStarted(Banshee.ServiceStack.Client client) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 126
   at <Module>.invoke_void__this___Client(Banshee.ServiceStack.Client )
   at Banshee.ServiceStack.Application.OnClientStarted(Banshee.ServiceStack.Client client) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:line 164
   at Banshee.ServiceStack.Client.OnStarted() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.Services/Banshee.ServiceStack/Client.cs:line 60
   at Banshee.Gui.GtkBaseClient.<Run>m__A0() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 207
   at Banshee.Gui.GtkBaseClient+<RunIdle>c__AnonStorey1D.<>m__A3() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 296
   at GLib.Idle+IdleProxy.Handler()
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Banshee.Gui.GtkBaseClient.Run() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 208
   at Banshee.Gui.GtkBaseClient.Startup() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 82
   at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Hyena/Hyena.Gui/Hyena.Gui/CleanRoomStartup.cs:line 54
   at Banshee.Gui.GtkBaseClient.Startup() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 77
   at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 67
   at Nereid.Client.Main(System.String[] args) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Clients/Nereid/Nereid/Client.cs:line 54
   at System.AppDomain.ExecuteAssembly(System.AppDomain , System.Reflection.Assembly , System.String[] )
   at System.AppDomain.ExecuteAssemblyInternal(System.Reflection.Assembly a, System.String[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/AppDomain.cs:line 660
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile, System.Security.Policy.Evidence assemblySecurity, System.String[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/AppDomain.cs:line 629
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/AppDomain.cs:line 612
   at Booter.Booter.BootClient(System.String clientName) in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Clients/Booter/Booter/Entry.cs:line 112
   at Booter.Booter.Main() in /build/buildd/banshee-2.5.0+git20120826.r1.c2e24fd/src/Clients/Booter/Booter/Entry.cs:line 105
Comment 7 Andrés G. Aragoneses (IRC: knocte) 2012-09-05 17:58:27 UTC
(In reply to comment #6)
> Still looking for gtk# debug symbols.

I just asked 'directhex' (package master of mono in ubuntu/debian) on our IRC channel and he just told me there's no package for that apparently :(

He told me "you can rebuild the src:gtk-sharp2 package with the two dh_clistrip lines commented out" but I guess if you're going that route, you could just build gtk-sharp from source yourself (the 2-12 branch) and test with that.

'dobey' in IRC is also telling me: "you can rebuild the src:gtk-sharp2 package with the two dh_clistrip lines commented out" which I hope you understand better than me :)


> Here is the dump with mono and Banshee debug symbols added.

Thanks! That's very useful. I just looked at the source code and that exception doesn't make much sense, because there's already a null check with a subsequent ArgumentNullException being thrown... unless, the NRE is actually happening inside gtk#.

Regardless, while looking at the code I also found another potential NullReferenceException culprit which I just fixed in http://git.gnome.org/browse/banshee/commit/?id=0c4892017f26d5b52854f1627a3b6eca612c2ced . There is a slight possibility that the stacktrace line numbers are a bit off and I touched the real culprit line in my commit (if you want to find out, compile and run master branch of banshee).
Comment 8 Andrés G. Aragoneses (IRC: knocte) 2012-09-05 18:00:33 UTC
Typo in my last commit: dobey didn't tell me the same as directhex, but this:

dobey 18:52:51
knocte: if there's no -dbg package you can add the ddebs.ubuntu.com source and probably install the -dbgsyms package from there

To which directhex replied:
directhex 18:57:41
does ddebs hook mdb files? i'm sure i planned on implementing it, i don't remember doing it
Comment 9 Andrés G. Aragoneses (IRC: knocte) 2012-09-05 18:01:13 UTC
Typo in my last comment: s/commit/comment/

Ahhh! the joys of bugzilla's non-editable comments :)
Comment 10 Andy Goar 2012-09-05 19:39:28 UTC
Many thanks for the potential fix. I will pull the code compile and test it later this afternoon. At the very least, if this does not fix the issue, it should give you more accurate line numbers in the next dump.

Again, many thanks.
Comment 11 Andy Goar 2012-09-05 21:19:34 UTC
Ok. I pulled the current source, built banshee, and I still get the issue (not that I expected otherwise, but given the fix Andre did, I was hoping). Here is the new stack dump, that has some additional info.

Please note, I had to run mono with the --runtime=v4.0 flag, otherwise it would not get very far at all.


andyg@AndysLaptop:~/bansheetest/banshee/bin$ mono --runtime=v4.0 --debug ./Banshee.exe
[Info  15:15:14.781] Running Banshee 2.5.0: [git-checkout (linux-gnu, i686) @ 2012-09-05 14:21:02 MDT]
[Info  15:15:16.968] Updating web proxy from GConf
[Info  15:15:17.162] All services are started 1.824118
[Info  15:15:19.430] Creating Accessible for Banshee.Collection.Gui.TrackListView
[Info  15:15:19.505] Creating Accessible for Banshee.Collection.Gui.QueryFilterView`1[System.String]
[Info  15:15:19.515] Creating Accessible for Banshee.Collection.Gui.ArtistListView
[Info  15:15:19.518] Creating Accessible for Banshee.Collection.Gui.YearListView
[Info  15:15:19.521] Creating Accessible for Banshee.Collection.Gui.AlbumListView
[Info  15:15:19.606] nereid Client Started
[Info  15:15:19.830] GStreamer version 0.10.36.0, gapless: True, replaygain: False
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.SourceView.<BuildColumns>m__D5 (CellLayout layout, Gtk.CellRenderer cell, TreeModel model, TreeIter iter) [0x00011] in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:137 
  at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback (IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] in <filename unknown>:0 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback(IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.TreeStore.gtk_tree_store_insert(IntPtr , TreeIter ByRef , IntPtr , Int32 )
   at Gtk.TreeStore.InsertNode(Int32 position)
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source, TreeIter parent) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 215
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 192
   at Banshee.Sources.Gui.SourceModel+<OnSourceAdded>c__AnonStorey2F.<>m__C8() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 97
   at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler) in /home/andyg/bansheetest/banshee/src/Hyena/Hyena/Hyena/ThreadAssist.cs:line 103
   at Banshee.Sources.Gui.SourceModel.OnSourceAdded(Banshee.Sources.SourceAddedArgs args) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 96
   at System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod , System.Object , System.Object[] , System.Exception ByRef )
   at System.Reflection.MonoMethod.Invoke(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System.Reflection/MonoMethod.cs:line 226
   at System.Reflection.MethodBase.Invoke(System.Object obj, System.Object[] parameters) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System.Reflection/MethodBase.cs:line 96
   at System.Delegate.DynamicInvokeImpl(System.Object[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/Delegate.cs:line 408
   at System.MulticastDelegate.DynamicInvokeImpl(System.Object[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/MulticastDelegate.cs:line 70
   at System.Delegate.DynamicInvoke(System.Object[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/Delegate.cs:line 382
   at Hyena.EventExtensions.SafeInvoke(Banshee.Sources.SourceAddedHandler event, System.Object[] args) in /home/andyg/bansheetest/banshee/src/Hyena/Hyena/Hyena/EventArgs.cs:line 55
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source, Boolean isDefault) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:line 183
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:line 148
   at Banshee.Podcasting.PodcastService.DelayedInitialize() in /home/andyg/bansheetest/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:line 237
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize(IService service) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 282
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize() in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 268
   at Banshee.ServiceStack.ServiceManager.OnClientStarted(Banshee.ServiceStack.Client client) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 126
   at <Module>.invoke_void__this___Client(Banshee.ServiceStack.Client )
   at Banshee.ServiceStack.Application.OnClientStarted(Banshee.ServiceStack.Client client) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:line 164
   at Banshee.ServiceStack.Client.OnStarted() in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Client.cs:line 60
   at Banshee.Gui.GtkBaseClient.<Run>m__A0() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 207
   at Banshee.Gui.GtkBaseClient+<RunIdle>c__AnonStorey1D.<>m__A3() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 296
   at GLib.Idle+IdleProxy.Handler()
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Banshee.Gui.GtkBaseClient.Run() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 208
   at Banshee.Gui.GtkBaseClient.Startup() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 82
   at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) in /home/andyg/bansheetest/banshee/src/Hyena/Hyena.Gui/Hyena.Gui/CleanRoomStartup.cs:line 54
   at Banshee.Gui.GtkBaseClient.Startup() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 77
   at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 67
   at Nereid.Client.Main(System.String[] args) in /home/andyg/bansheetest/banshee/src/Clients/Nereid/Nereid/Client.cs:line 54
   at System.AppDomain.ExecuteAssembly(System.AppDomain , System.Reflection.Assembly , System.String[] )
   at System.AppDomain.ExecuteAssemblyInternal(System.Reflection.Assembly a, System.String[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/AppDomain.cs:line 660
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile, System.Security.Policy.Evidence assemblySecurity, System.String[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/AppDomain.cs:line 629
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/AppDomain.cs:line 612
   at Booter.Booter.BootClient(System.String clientName) in /home/andyg/bansheetest/banshee/src/Clients/Booter/Booter/Entry.cs:line 112
   at Booter.Booter.Main() in /home/andyg/bansheetest/banshee/src/Clients/Booter/Booter/Entry.cs:line 105
Comment 12 Andrés G. Aragoneses (IRC: knocte) 2012-09-05 21:41:51 UTC
Great, do you mind adding some debug statements in around line 137 of file /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs ?

By looking at the stacktrace again, I think that NRE cannot really come from gtk-sharp, so I'm completely puzzled as to why it could happen.

You could for example replace the whole call to the method SetCellDataFunc, with this block of code, to try to figure out where it's actually firing:

source_column.SetCellDataFunc (header_renderer, new Gtk.CellLayoutDataFunc ((layout, cell, model, iter) => {
  Console.WriteLine ("___SetCallDataFunc0");
  if (model == null) {
    Console.WriteLine ("___SetCallDataFunc1");
    throw new ArgumentNullException ("model");
  }
  Console.WriteLine ("___SetCallDataFunc2");
  int typeToRequest = (int)SourceModel.Columns.Type;
  Console.WriteLine ("___SetCallDataFunc3");
  var uncastedType = model.GetValue (iter, typeToRequest);
  Console.WriteLine ("___SetCallDataFunc4");
  var type = (SourceModel.EntryType) uncastedType;
  Console.WriteLine ("___SetCallDataFunc5");
  header_renderer.Visible = type == SourceModel.EntryType.Group;
  Console.WriteLine ("___SetCallDataFunc6");
  source_renderer.Visible = type == SourceModel.EntryType.Source;
  Console.WriteLine ("___SetCallDataFunc7");
  if (type == SourceModel.EntryType.Group) {
    Console.WriteLine ("___SetCallDataFunc8");
    typeToRequest = (int)SourceModel.Columns.Source;
    Console.WriteLine ("___SetCallDataFunc9");
    var source = (Source) model.GetValue (iter, typeToRequest);
    Console.WriteLine ("___SetCallDataFunc10");
    header_renderer.Visible = true;
    Console.WriteLine ("___SetCallDataFunc11");
    header_renderer.Text = source.Name;
  } else {
    Console.WriteLine ("___SetCallDataFunc12");
    header_renderer.Visible = false;
  }
  Console.WriteLine ("___SetCallDataFunc13");
}));


See where I'm going? The only thing I'm thinking now is that maybe a "==" operation on a type is generating an call to an ".Equals" method which could result in an NRE if the object is null... but still looks very weird.

Thanks for your patience!
Comment 13 Andrés G. Aragoneses (IRC: knocte) 2012-09-05 21:43:01 UTC
(BTW, if the creation of that smartplaylist is really the culprit of this crash, you could send me your SQLite database by email so I try to reproduce the problem locally too.)
Comment 14 Andy Goar 2012-09-05 22:02:21 UTC
Added the code in question, recompiled, and rerun. Here is the relevant part of the output (the full output is huge, with lots of __SetCallDataFunc lines. So I included the stuff only right around the crash.

I would be glad to send you the database file. I assume it's in .gconf/apps/banshee-1 somewhere?

I do not know that the smartplaylist is the culprit for sure. It was just the last thing I did.

Once quick note. With the locally compiled version the app does not crash completely. I still get the same stackdump (attached previously and below), but the GUI stays on the screen. It's frozen, but it's still there.

I also noted that the stackdump includes mention of the PodcastService, and that the Podcast area never gets displayed in the GUI before it freezes up. While it was not the last thing I did, I do a lot with poscasts. Could the smartplaylist be a red herring, and the issue be really in the podcast stuff? 


___SetCallDataFunc0
___SetCallDataFunc2
___SetCallDataFunc3
___SetCallDataFunc4
___SetCallDataFunc5
___SetCallDataFunc6
___SetCallDataFunc7
___SetCallDataFunc8
___SetCallDataFunc9
___SetCallDataFunc10
___SetCallDataFunc11
___SetCallDataFunc13
___SetCallDataFunc0
___SetCallDataFunc2
___SetCallDataFunc3
___SetCallDataFunc4
___SetCallDataFunc5
___SetCallDataFunc6
___SetCallDataFunc7
___SetCallDataFunc8
___SetCallDataFunc9
___SetCallDataFunc10
___SetCallDataFunc11
___SetCallDataFunc13
___SetCallDataFunc0
___SetCallDataFunc2
___SetCallDataFunc3
___SetCallDataFunc4
___SetCallDataFunc5
___SetCallDataFunc6
___SetCallDataFunc7
___SetCallDataFunc12
___SetCallDataFunc13
___SetCallDataFunc0
___SetCallDataFunc2
___SetCallDataFunc3
___SetCallDataFunc4
___SetCallDataFunc5
___SetCallDataFunc6
___SetCallDataFunc7
___SetCallDataFunc12
___SetCallDataFunc13
[Info  15:49:04.554] Creating Accessible for Banshee.Collection.Gui.TrackListView
[Info  15:49:04.625] Creating Accessible for Banshee.Collection.Gui.QueryFilterView`1[System.String]
[Info  15:49:04.636] Creating Accessible for Banshee.Collection.Gui.ArtistListView
[Info  15:49:04.640] Creating Accessible for Banshee.Collection.Gui.YearListView
[Info  15:49:04.643] Creating Accessible for Banshee.Collection.Gui.AlbumListView
[Info  15:49:04.752] nereid Client Started
[Info  15:49:05.275] GStreamer version 0.10.36.0, gapless: True, replaygain: False
___SetCallDataFunc0
___SetCallDataFunc2
___SetCallDataFunc3
___SetCallDataFunc4
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.SourceView.<BuildColumns>m__D5 (CellLayout layout, Gtk.CellRenderer cell, TreeModel model, TreeIter iter) [0x0004f] in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:161 
  at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback (IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] in <filename unknown>:0 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback(IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.TreeStore.gtk_tree_store_insert(IntPtr , TreeIter ByRef , IntPtr , Int32 )
   at Gtk.TreeStore.InsertNode(Int32 position)
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source, TreeIter parent) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 215
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 192
   at Banshee.Sources.Gui.SourceModel+<OnSourceAdded>c__AnonStorey2F.<>m__C8() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 97
Comment 15 Andrés G. Aragoneses (IRC: knocte) 2012-09-05 23:49:17 UTC
(In reply to comment #14)
> Added the code in question, recompiled, and rerun.

Great, I assume you copy+pasted my code without modifying anything?

If yes, then I learned something today.


> Here is the relevant part of
> the output (the full output is huge, with lots of __SetCallDataFunc lines. So I
> included the stuff only right around the crash.

What this tells me (and later I confirmed by even testing in MS.NET to double-check it was not a Mono bug) that if you try to cast null to an enum, it will give a NullReferenceException instead of an InvalidCastException!



> I would be glad to send you the database file. I assume it's in
> .gconf/apps/banshee-1 somewhere?

It should be in /home/andyg/.config/banshee-1/banshee.db


> I do not know that the smartplaylist is the culprit for sure. It was just the
> last thing I did.

Yeah this is what I want to check by running with your sqlite file.


> Once quick note. With the locally compiled version the app does not crash
> completely. I still get the same stackdump (attached previously and below), but
> the GUI stays on the screen. It's frozen, but it's still there.

Interesting.


> I also noted that the stackdump includes mention of the PodcastService, and
> that the Podcast area never gets displayed in the GUI before it freezes up.
> While it was not the last thing I did, I do a lot with poscasts. Could the
> smartplaylist be a red herring, and the issue be really in the podcast stuff? 

Maybe.


Now. Before trying to understand the problem completely (why a null value would come from the model.GetValue() call), can you replace again the SetCallDataFunc block to this code to see if this at least prevents it from freezing/crashing banshee?

            source_column.SetCellDataFunc (header_renderer, new Gtk.CellLayoutDataFunc ((layout, cell, model, iter) => {
                if (model == null) {
                    throw new ArgumentNullException ("model");
                }

                var type = model.GetValue (iter, (int)SourceModel.Columns.Type);
                if (!(type is SourceModel.EntryType)) {
                    Log.ErrorFormat ("SourceView {0} could not render its source column because its type value returned null from the iter", Name);
                    return;
                }
                var entryType = (SourceModel.EntryType) type;
                source_renderer.Visible = entryType == SourceModel.EntryType.Source;
                if (entryType == SourceModel.EntryType.Group) {
                    header_renderer.Visible = true;
                    var source = (Source) model.GetValue (iter, (int)SourceModel.Columns.Source);
                    header_renderer.Text = source.Name;
                } else {
                    header_renderer.Visible = false;
                }
            }));

Even if it doesn't crash/freeze this time, the output of the terminal will still be useful to me.
Comment 16 Andy Goar 2012-09-06 00:14:58 UTC
Yes, today you learned never to send bits of dangerous code to random strangers, right?   :-)

I put in the code clip that you posted, and it indeed prevented the apps from crashing. Whohoo!!!!!!

Below is the output.

I will send you my database file via email in just a bit.


andyg@AndysLaptop:~/bansheetest/banshee/bin$ mono --runtime=v4.0 --debug ./Banshee.exe
[Info  18:11:51.538] Running Banshee 2.5.0: [git-checkout (linux-gnu, i686) @ 2012-09-05 14:21:02 MDT]
[Info  18:11:55.199] Updating web proxy from GConf
[Info  18:11:55.338] All services are started 1.778619
[Info  18:11:57.390] Creating Accessible for Banshee.Collection.Gui.TrackListView
[Info  18:11:57.499] Creating Accessible for Banshee.Collection.Gui.QueryFilterView`1[System.String]
[Info  18:11:57.517] Creating Accessible for Banshee.Collection.Gui.ArtistListView
[Info  18:11:57.521] Creating Accessible for Banshee.Collection.Gui.YearListView
[Info  18:11:57.523] Creating Accessible for Banshee.Collection.Gui.AlbumListView
[Info  18:11:57.598] nereid Client Started
[Info  18:11:57.815] GStreamer version 0.10.36.0, gapless: True, replaygain: False
[Error 18:11:57.965] SourceView __gtksharp_37_Banshee_Sources_Gui_SourceView could not render its source column because its type value returned null from the iter
[Error 18:11:57.968] SourceView __gtksharp_37_Banshee_Sources_Gui_SourceView could not render its source column because its type value returned null from the iter
[Error 18:11:57.969] SourceView __gtksharp_37_Banshee_Sources_Gui_SourceView could not render its source column because its type value returned null from the iter
[Error 18:11:57.970] SourceView __gtksharp_37_Banshee_Sources_Gui_SourceView could not render its source column because its type value returned null from the iter
[Error 18:11:57.972] SourceView __gtksharp_37_Banshee_Sources_Gui_SourceView could not render its source column because its type value returned null from the iter
Comment 17 Andrés G. Aragoneses (IRC: knocte) 2012-09-07 10:03:42 UTC
(In reply to comment #16)
> I put in the code clip that you posted, and it indeed prevented the apps from
> crashing. Whohoo!!!!!!

That's great news!

> I will send you my database file via email in just a bit.

Thanks. Unfortunately, I tested with your DB and I could not reproduce the issue. So I need your help again before I propose a fix for the crasher. Can you copy+paste this new code for the SetCallDataFunc block?

            source_column.SetCellDataFunc (header_renderer, new Gtk.CellLayoutDataFunc ((layout, cell, model, iter) => {
                if (model == null) {
                    throw new ArgumentNullException ("model");
                }

                // be paranoid about the values returned from model.GetValue(), they may be null or have unexpected types, see bgo#683359
                var objType = model.GetValue (iter, (int)SourceModel.Columns.Type);
                if (objType == null || !(objType is SourceModel.EntryType)) {

                    var source = model.GetValue (iter, (int)SourceModel.Columns.Source) as Source;
                    var sourceName = source == null ? "some source" : String.Format ("source {0}", source.Name);

                    Log.ErrorFormat (
                        "SourceView of {0} could not render its source column because its type value returned {1} from the iter",
                        sourceName, objType == null ? "null" : String.Format ("an instance of {0}", objType.GetType ().FullName));

                    header_renderer.Visible = false;
                    source_renderer.Visible = false;

                    return;
                }

                var type = (SourceModel.EntryType) objType;
                header_renderer.Visible = type == SourceModel.EntryType.Group;
                source_renderer.Visible = type == SourceModel.EntryType.Source;
                if (type == SourceModel.EntryType.Group) {
                    var source = (Source) model.GetValue (iter, (int)SourceModel.Columns.Source);
                    header_renderer.Visible = true;
                    header_renderer.Text = source.Name;
                } else {
                    header_renderer.Visible = false;
                }
            }));


I want to see the output of that. Hopefully the source name this time will be clearer than just "__gtksharp_37_Banshee_Sources_Gui_SourceView". If you something strange in the UI of Banshee, let me know as well please.

Thanks!
Comment 18 Andrés G. Aragoneses (IRC: knocte) 2012-09-07 10:05:02 UTC
s/you something/you see something/
Comment 19 Andy Goar 2012-09-07 13:31:18 UTC
Here is the new output.



[Info  07:28:34.392] Running Banshee 2.5.0: [git-checkout (linux-gnu, i686) @ 2012-09-05 14:21:02 MDT]
[Info  07:28:37.005] Starting collection of anonymous usage data
[Info  07:28:39.248] Updating web proxy from GConf
[Info  07:28:39.468] All services are started 2.772886
[Info  07:28:41.793] Creating Accessible for Banshee.Collection.Gui.TrackListView
[Info  07:28:41.865] Creating Accessible for Banshee.Collection.Gui.QueryFilterView`1[System.String]
[Info  07:28:41.875] Creating Accessible for Banshee.Collection.Gui.ArtistListView
[Info  07:28:41.878] Creating Accessible for Banshee.Collection.Gui.YearListView
[Info  07:28:41.881] Creating Accessible for Banshee.Collection.Gui.AlbumListView
[Info  07:28:41.953] nereid Client Started
[Info  07:28:42.460] GStreamer version 0.10.36.0, gapless: True, replaygain: False
[Error 07:28:42.798] SourceView of some source could not render its source column because its type value returned null from the iter
[Error 07:28:42.800] SourceView of source Podcasts could not render its source column because its type value returned null from the iter
[Error 07:28:42.801] SourceView of source Podcasts could not render its source column because its type value returned null from the iter
[Error 07:28:42.802] SourceView of source Podcasts could not render its source column because its type value returned null from the iter
[Error 07:28:42.803] SourceView of source Podcasts could not render its source column because its type value returned null from the iter
 0.044929027557373

[Info  07:28:48.807] Posted usage data? True
Comment 20 Andy Goar 2012-09-07 13:32:54 UTC
By the way, I did not see anything odd at all with the display. At least in the podcast area, things look fine.
Comment 21 Andrés G. Aragoneses (IRC: knocte) 2012-09-07 17:08:31 UTC
Created attachment 223777 [details] [review]
patch.diff

Ok, I think we're getting closer to the bottom of it.

I think it must be a race condition that is only hit by slower or faster machines.

Can you try this patch instead? For applying it, you need to revert first the copy+paste of my new code block by writing "git reset --hard" on the command line, then download this patch to the same folder where your banshee folder is, and then writing "patch -p1 -i ./patch.diff" in the terminal. (Then "make" and "make run" like previous times)

Hopefully, with these patch, you will not see any more [Error] logs and still don't crash/freeze.
Comment 22 Andy Goar 2012-09-07 21:20:04 UTC
Thanks so much for the quick patch Andrés!

Unfortunately, this did not help. I did a git reset, applied the patch, verified that SourceView.cs was patched exactly as expected (old hand applied changes gone, changes from patch files there), rebuilt and ran, and immedeately got the following crash.


[Info  15:17:55.593] Running Banshee 2.5.0: [git-checkout (linux-gnu, i686) @ 2012-09-05 14:21:02 MDT]
[Info  15:17:57.841] Updating web proxy from GConf
[Info  15:17:57.992] All services are started 1.840284
[Info  15:18:00.271] Creating Accessible for Banshee.Collection.Gui.TrackListView
[Info  15:18:00.344] Creating Accessible for Banshee.Collection.Gui.QueryFilterView`1[System.String]
[Info  15:18:00.354] Creating Accessible for Banshee.Collection.Gui.ArtistListView
[Info  15:18:00.358] Creating Accessible for Banshee.Collection.Gui.YearListView
[Info  15:18:00.360] Creating Accessible for Banshee.Collection.Gui.AlbumListView
[Info  15:18:00.465] nereid Client Started
[Info  15:18:00.715] GStreamer version 0.10.36.0, gapless: True, replaygain: False
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.SourceView.<BuildColumns>m__D5 (CellLayout layout, Gtk.CellRenderer cell, TreeModel model, TreeIter iter) [0x00011] in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:139 
  at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback (IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] in <filename unknown>:0 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback(IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.TreeStore.gtk_tree_store_insert(IntPtr , TreeIter ByRef , IntPtr , Int32 )
   at Gtk.TreeStore.InsertNode(Int32 position)
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source, TreeIter parent) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 215
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 192
   at Banshee.Sources.Gui.SourceModel+<OnSourceAdded>c__AnonStorey2F.<>m__C8() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 97
   at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler) in /home/andyg/bansheetest/banshee/src/Hyena/Hyena/Hyena/ThreadAssist.cs:line 103
   at Banshee.Sources.Gui.SourceModel.OnSourceAdded(Banshee.Sources.SourceAddedArgs args) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 96
   at System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod , System.Object , System.Object[] , System.Exception ByRef )
   at System.Reflection.MonoMethod.Invoke(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System.Reflection/MonoMethod.cs:line 226
   at System.Reflection.MethodBase.Invoke(System.Object obj, System.Object[] parameters) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System.Reflection/MethodBase.cs:line 96
   at System.Delegate.DynamicInvokeImpl(System.Object[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/Delegate.cs:line 408
   at System.MulticastDelegate.DynamicInvokeImpl(System.Object[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/MulticastDelegate.cs:line 70
   at System.Delegate.DynamicInvoke(System.Object[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/Delegate.cs:line 382
   at Hyena.EventExtensions.SafeInvoke(Banshee.Sources.SourceAddedHandler event, System.Object[] args) in /home/andyg/bansheetest/banshee/src/Hyena/Hyena/Hyena/EventArgs.cs:line 55
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source, Boolean isDefault) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:line 183
   at Banshee.Sources.SourceManager.AddSource(Banshee.Sources.Source source) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:line 148
   at Banshee.Podcasting.PodcastService.DelayedInitialize() in /home/andyg/bansheetest/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:line 237
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize(IService service) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 282
   at Banshee.ServiceStack.ServiceManager.DelayedInitialize() in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 268
   at Banshee.ServiceStack.ServiceManager.OnClientStarted(Banshee.ServiceStack.Client client) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:line 126
   at <Module>.invoke_void__this___Client(Banshee.ServiceStack.Client )
   at Banshee.ServiceStack.Application.OnClientStarted(Banshee.ServiceStack.Client client) in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:line 164
   at Banshee.ServiceStack.Client.OnStarted() in /home/andyg/bansheetest/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Client.cs:line 60
   at Banshee.Gui.GtkBaseClient.<Run>m__A0() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 207
   at Banshee.Gui.GtkBaseClient+<RunIdle>c__AnonStorey1D.<>m__A3() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 296
   at GLib.Idle+IdleProxy.Handler()
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Banshee.Gui.GtkBaseClient.Run() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 208
   at Banshee.Gui.GtkBaseClient.Startup() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 82
   at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) in /home/andyg/bansheetest/banshee/src/Hyena/Hyena.Gui/Hyena.Gui/CleanRoomStartup.cs:line 54
   at Banshee.Gui.GtkBaseClient.Startup() in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 77
   at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:line 67
   at Nereid.Client.Main(System.String[] args) in /home/andyg/bansheetest/banshee/src/Clients/Nereid/Nereid/Client.cs:line 54
   at System.AppDomain.ExecuteAssembly(System.AppDomain , System.Reflection.Assembly , System.String[] )
   at System.AppDomain.ExecuteAssemblyInternal(System.Reflection.Assembly a, System.String[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/AppDomain.cs:line 660
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile, System.Security.Policy.Evidence assemblySecurity, System.String[] args) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/AppDomain.cs:line 629
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile) in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System/AppDomain.cs:line 612
   at Booter.Booter.BootClient(System.String clientName) in /home/andyg/bansheetest/banshee/src/Clients/Booter/Booter/Entry.cs:line 112
   at Booter.Booter.Main() in /home/andyg/bansheetest/banshee/src/Clients/Booter/Booter/Entry.cs:line 105
Comment 23 Andrés G. Aragoneses (IRC: knocte) 2012-09-09 01:26:08 UTC
Created attachment 223830 [details]
patch v2

(In reply to comment #22)
> Thanks so much for the quick patch Andrés!

No problem, thank *you* for testing! Hopefully you can keep testing without getting bored until the bug is fixed :)


> Unfortunately, this did not help. I did a git reset, applied the patch,
> verified that SourceView.cs was patched exactly as expected (old hand applied
> changes gone, changes from patch files there), rebuilt and ran, and immedeately
> got the following crash.

Ok here you have a new patch.
Comment 24 Andy Goar 2012-09-09 15:33:48 UTC
Was this supposed to be a patch ontop of the base (ie do a reset first), or ontop of the last patch?

I did a reset first, compiles, and still get a crash.


[Info  09:31:31.688] Running Banshee 2.5.0: [git-checkout (linux-gnu, i686) @ 2012-09-05 14:21:02 MDT]
[Info  09:31:35.737] Updating web proxy from GConf
[Info  09:31:35.874] All services are started 2.414832
[Info  09:31:37.601] Creating Accessible for Banshee.Collection.Gui.TrackListView
[Info  09:31:37.644] Creating Accessible for Banshee.Collection.Gui.QueryFilterView`1[System.String]
[Info  09:31:37.651] Creating Accessible for Banshee.Collection.Gui.ArtistListView
[Info  09:31:37.654] Creating Accessible for Banshee.Collection.Gui.YearListView
[Info  09:31:37.655] Creating Accessible for Banshee.Collection.Gui.AlbumListView
[Info  09:31:37.703] nereid Client Started
[Info  09:31:38.181] GStreamer version 0.10.36.0, gapless: True, replaygain: False
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.SourceView.<BuildColumns>m__D5 (CellLayout layout, Gtk.CellRenderer cell, TreeModel model, TreeIter iter) [0x00011] in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:139 
  at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback (IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] in <filename unknown>:0 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.CellLayoutDataFuncWrapper.NativeCallback(IntPtr cell_layout, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.TreeStore.gtk_tree_store_insert(IntPtr , TreeIter ByRef , IntPtr , Int32 )
   at Gtk.TreeStore.InsertNode(Int32 position)
   at Banshee.Sources.Gui.SourceModel.AddSource(Banshee.Sources.Source source, TreeIter parent) in /home/andyg/bansheetest/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceModel.cs:line 215
Comment 25 Andrés G. Aragoneses (IRC: knocte) 2012-09-12 18:14:52 UTC
Created attachment 224137 [details] [review]
Patch to avoid crashing atleast

(In reply to comment #24)
> Was this supposed to be a patch ontop of the base (ie do a reset first), or
> ontop of the last patch?

It was on top of base.

> 
> I did a reset first, compiles, and still get a crash.
>

Damn! Well, I guess we'll have to dig more. But for now I guess this logging patch would do for the next 2.5.x release. Thanks again for testing!
Comment 26 Andrés G. Aragoneses (IRC: knocte) 2012-09-12 18:18:50 UTC
*** Bug 675587 has been marked as a duplicate of this bug. ***
Comment 27 Andrés G. Aragoneses (IRC: knocte) 2012-09-12 18:37:00 UTC
Comment on attachment 224137 [details] [review]
Patch to avoid crashing atleast

Committed: http://git.gnome.org/browse/banshee/commit/?id=d835de9ebc75bf937aa66d45909cb5eb119249e0
Comment 28 Andrés G. Aragoneses (IRC: knocte) 2012-09-12 18:39:23 UTC
So I'm marking this as FIXED, as the main problem (crashing) is solved.

We will have to revisit the problem later. Fortunately, we will have Error logs for us to not forget.

Thanks Andy for testing! And Bertrand for reviewing.

This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.
Comment 29 Andrés G. Aragoneses (IRC: knocte) 2012-09-24 13:48:33 UTC
*** Bug 684714 has been marked as a duplicate of this bug. ***
Comment 30 Nicholas Little 2014-12-14 20:47:31 UTC
Created attachment 292706 [details] [review]
Resolution

I know this bug was closed a long time ago but couldn't see the sense in opening a new one since the fix was a workaround. Apologies if I have bothered you.

@knocte: Nice to know we think alike-my first thought here was also to move the BuildColumns call and see what happened! :)

Enjoy.
Comment 31 Andrés G. Aragoneses (IRC: knocte) 2014-12-14 22:22:07 UTC
(In reply to comment #30)
> Created an attachment (id=292706) [details] [review]
> Resolution
> 
> I know this bug was closed a long time ago but couldn't see the sense in
> opening a new one since the fix was a workaround. Apologies if I have bothered
> you.
> 
> @knocte: Nice to know we think alike-my first thought here was also to move the
> BuildColumns call and see what happened! :)
> 
> Enjoy.

So, I'm assuming that this patch is fixing some error logs that you're getting in the console? Can you paste them here?

As the patch for this bug added the log "SourceView of {0} could not render its source column because its type value returned {1} from the iter", I first assumed that you really had faced bug 732373 (which I still reproduce in the stable branch), but sadly your patch doesn't fix it :(
Comment 32 Nicholas Little 2014-12-14 23:31:53 UTC
(In reply to comment #31)
> (In reply to comment #30)
> > Created an attachment (id=292706) [details] [review] [details] [review]
> > Resolution
> > 
> > I know this bug was closed a long time ago but couldn't see the sense in
> > opening a new one since the fix was a workaround. Apologies if I have bothered
> > you.
> > 
> > @knocte: Nice to know we think alike-my first thought here was also to move the
> > BuildColumns call and see what happened! :)
> > 
> > Enjoy.
> 
> So, I'm assuming that this patch is fixing some error logs that you're getting
> in the console? Can you paste them here?

Without the above patch, whenever the podcasts extension loads I get these log messages:

[1 Debug 23:24:43.600] Delayed Initializating Banshee.Podcasting.PodcastService
[1 Error 23:24:43.619] SourceView of some source could not render its source column because its type value returned null from the iter
[1 Error 23:24:43.620] SourceView of source Podcasts could not render its source column because its type value returned null from the iter
[1 Error 23:24:43.620] SourceView of source Podcasts could not render its source column because its type value returned null from the iter
[9 Debug 23:24:43.629] Refreshing any podcasts that haven't been updated in over an hour

With the patch, the log contains only the first and last messages. I haven't tested the various DAP sources that are exhibiting the problem.

> As the patch for this bug added the log "SourceView of {0} could not render its
> source column because its type value returned {1} from the iter", I first
> assumed that you really had faced bug 732373 (which I still reproduce in the
> stable branch), but sadly your patch doesn't fix it :(

Not entirely certain what's going on in bug 732373. I'll most likely have a closer look this week.
Comment 33 Andrés G. Aragoneses (IRC: knocte) 2014-12-15 01:41:38 UTC
Comment on attachment 292706 [details] [review]
Resolution


> Without the above patch, whenever the podcasts extension loads I get these log
> messages:
> 
> [1 Debug 23:24:43.600] Delayed Initializating Banshee.Podcasting.PodcastService
> [1 Error 23:24:43.619] SourceView of some source could not render its source
> column because its type value returned null from the iter
> [1 Error 23:24:43.620] SourceView of source Podcasts could not render its
> source column because its type value returned null from the iter
> [1 Error 23:24:43.620] SourceView of source Podcasts could not render its
> source column because its type value returned null from the iter
> [9 Debug 23:24:43.629] Refreshing any podcasts that haven't been updated in
> over an hour
> 
> With the patch, the log contains only the first and last messages. I haven't
> tested the various DAP sources that are exhibiting the problem.

Thanks for the patch and the log! Committed.
Comment 34 Andrés G. Aragoneses (IRC: knocte) 2014-12-15 01:42:22 UTC
(In reply to comment #32)
> Not entirely certain what's going on in bug 732373. I'll most likely have a
> closer look this week.

That would be appreciated!