GNOME Bugzilla – Bug 710266
Warnings and CRITICALs shown in the console when closing the player after pausing a video
Last modified: 2013-10-21 20:34:23 UTC
If I play a video and quit Banshee, I get this warning (NRE): [1 Debug 13:14:20.079] Player state change: Paused -> Idle [1 Debug 13:14:20.083] (libbanshee:player) bp_destroy: disposed player [1 Debug 13:14:20.083] Service disposed (PlayerEngine) [1 Warn 13:14:20.090] Service disposal (SourceManager) threw an exception - System.NullReferenceException: Object reference not set to an instance of an object (in `Banshee.Services') at Banshee.MediaEngine.PlayerEngineService.get_CurrentState () [0x00001] in ~/banshee261/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:676 at Banshee.MediaEngine.PlayerEngineService.IsPlaying () [0x00002] in ~/banshee261/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:568 at Banshee.PlaybackController.PlaybackControllerService.<PlaybackControllerService>m__55 (Banshee.Sources.SourceEventArgs ) [0x00033] in ~/banshee261/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:102 at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at Banshee.Sources.SourceManager.SetActiveSource (Banshee.Sources.Source source, Boolean notify) [0x00095] in ~/banshee261/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:413 at Banshee.Sources.SourceManager.SetActiveSource (Banshee.Sources.Source source) [0x00004] in ~/banshee261/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:385 at Banshee.Sources.SourceManager+<RemoveSource>c__AnonStorey33.<>m__6F () [0x0005b] in ~/banshee261/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:250 at Hyena.ThreadAssist.ProxyToMain (Hyena.InvokeHandler handler) [0x0001f] in ~/banshee261/src/Hyena/Hyena/Hyena/ThreadAssist.cs:103 at Banshee.Sources.SourceManager.RemoveSource (Banshee.Sources.Source source, Boolean recursivelyDispose) [0x00168] in ~/banshee261/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:245 at Banshee.Sources.SourceManager.Dispose () [0x00056] in ~/banshee261/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:105 at Banshee.ServiceStack.ServiceManager.Shutdown () [0x0002a] in ~/banshee261/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:297 Now, if I fix that NRE with this: @@ -671,11 +671,16 @@ namespace Banshee.MediaEngine string IPlayerEngineService.CurrentUri { get { return CurrentSafeUri == null ? String.Empty : CurrentSafeUri.AbsoluteUri; } } public PlayerState CurrentState { - get { return synthesized_contacting_track != null ? PlayerState.Contacting : active_engine.CurrentState; } + get { + if (active_engine == null) { + return PlayerState.NotReady; + } + return synthesized_contacting_track != null ? PlayerState.Contacting : active_engine.CurrentState; + } } string IPlayerEngineService.CurrentState { get { return CurrentState.ToString ().ToLower (); } } Then I get this other, worse and bigger, GTK CRITICAL: [1 Debug 13:42:07.532] TrackInfoDisplay RenderAnimation: 32.00 FPS [1 Debug 13:42:11.485] Player state change: Playing -> Paused [1 Debug 13:42:14.042] Service disposed (LastfmStreamingService) [1 Debug 13:42:14.042] Service disposed (GStreamerCoreService) [1 Debug 13:42:14.043] Service disposed (GnomeService) [1 Debug 13:42:14.045] Service disposed (AudioscrobblerService) [1 Debug 13:42:14.048] Service disposed (NotificationAreaService) [1 Debug 13:42:14.049] Service disposed (CoverArtService) [1 Debug 13:42:14.056] Service disposed (DaapService) [1 Debug 13:42:14.059] Service disposed (DapService) [1 Debug 13:42:14.059] Service disposed (AmazonMp3DownloaderService) [1 Debug 13:42:14.069] Service disposed (PodcastService) [1 Debug 13:42:14.069] Service disposed (EmusicService) [1 Debug 13:42:14.071] Service disposed (MultimediaKeysService) [1 Debug 13:42:14.072] Service disposed (DvdService) [1 Debug 13:42:14.072] Service disposed (AudioCdService) [1 Debug 13:42:14.073] Service disposed (BpmService) [1 Debug 13:42:14.076] Service disposed (NereidPlayerInterface) [1 Debug 13:42:14.076] Service disposed (BookmarksService) [1 Debug 13:42:14.076] Service disposed (CollectionIndexerService) [1 Debug 13:42:14.077] Service disposed (HardwareManager) [1 Debug 13:42:14.078] (libbanshee:player) bp_stop: setting state to GST_STATE_NULL [1 Debug 13:42:14.116] Player state change: Paused -> Idle [1 Debug 13:42:14.120] (libbanshee:player) bp_destroy: disposed player [1 Debug 13:42:14.121] Service disposed (PlayerEngine) Domain: 'Gtk' Level: Critical Message: IA__gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed Trace follows: at GLib.Log.PrintTraceLogFunction(System.String domain, LogLevelFlags level, System.String message) at Gtk.Widget.gtk_widget_hide(IntPtr ) at Gtk.Widget.Hide() at Nereid.ViewContainer.set_Content(ISourceContents value) at Nereid.PlayerInterface.UpdateSourceContents(Banshee.Sources.Source source) at Nereid.PlayerInterface.<OnActiveSourceChanged>m__7() at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler) at Nereid.PlayerInterface.OnActiveSourceChanged(Banshee.Sources.SourceEventArgs args) at Banshee.Sources.SourceManager.SetActiveSource(Banshee.Sources.Source source, Boolean notify) at Banshee.Sources.SourceManager.SetActiveSource(Banshee.Sources.Source source) at Banshee.Sources.SourceManager+<RemoveSource>c__AnonStorey33.<>m__6F() at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler) at Banshee.Sources.SourceManager.RemoveSource(Banshee.Sources.Source source, Boolean recursivelyDispose) at Banshee.Sources.SourceManager.Dispose() at Banshee.ServiceStack.ServiceManager.Shutdown() at Banshee.ServiceStack.Application.Dispose() at Banshee.ServiceStack.Application.Shutdown() at Banshee.Gui.GlobalActions.OnQuit(System.Object o, System.EventArgs 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 GLib.Signal.ClosureInvokedCB(System.Object o, GLib.ClosureInvokedArgs args) at GLib.SignalClosure.Invoke(GLib.ClosureInvokedArgs args) at GLib.SignalClosure.MarshalCallback(IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data) at Gtk.Application.gtk_main() at Gtk.Application.Run() at Banshee.Gui.GtkBaseClient.Run() at Banshee.Gui.GtkBaseClient.Startup() at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) at Banshee.Gui.GtkBaseClient.Startup() at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) at Nereid.Client.Main(System.String[] args) Domain: 'Gtk' Level: Critical Message: IA__gtk_container_remove: assertion `GTK_IS_WIDGET (widget)' failed Trace follows: at GLib.Log.PrintTraceLogFunction(System.String domain, LogLevelFlags level, System.String message) at Gtk.Container.gtk_container_remove(IntPtr , IntPtr ) at Gtk.Container.Remove(Gtk.Widget widget) at Nereid.ViewContainer.set_Content(ISourceContents value) at Nereid.PlayerInterface.UpdateSourceContents(Banshee.Sources.Source source) at Nereid.PlayerInterface.<OnActiveSourceChanged>m__7() at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler) at Nereid.PlayerInterface.OnActiveSourceChanged(Banshee.Sources.SourceEventArgs args) at Banshee.Sources.SourceManager.SetActiveSource(Banshee.Sources.Source source, Boolean notify) at Banshee.Sources.SourceManager.SetActiveSource(Banshee.Sources.Source source) at Banshee.Sources.SourceManager+<RemoveSource>c__AnonStorey33.<>m__6F() at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler) at Banshee.Sources.SourceManager.RemoveSource(Banshee.Sources.Source source, Boolean recursivelyDispose) at Banshee.Sources.SourceManager.Dispose() at Banshee.ServiceStack.ServiceManager.Shutdown() at Banshee.ServiceStack.Application.Dispose() at Banshee.ServiceStack.Application.Shutdown() at Banshee.Gui.GlobalActions.OnQuit(System.Object o, System.EventArgs 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 GLib.Signal.ClosureInvokedCB(System.Object o, GLib.ClosureInvokedArgs args) at GLib.SignalClosure.Invoke(GLib.ClosureInvokedArgs args) at GLib.SignalClosure.MarshalCallback(IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data) at Gtk.Application.gtk_main() at Gtk.Application.Run() at Banshee.Gui.GtkBaseClient.Run() at Banshee.Gui.GtkBaseClient.Startup() at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) at Banshee.Gui.GtkBaseClient.Startup() at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) at Nereid.Client.Main(System.String[] args) [1 Debug 13:42:14.164] Service disposed (SourceManager) [1 Debug 13:42:14.164] Service disposed (Network) [1 Debug 13:42:14.167] Service disposed (DbConnection)
Fixed the first one in https://git.gnome.org/browse/banshee/commit/?id=704679998baa2802cf32312c6fc8f4aa26f9c82a and the last one in https://git.gnome.org/browse/banshee/commit/?id=dae6be2d04662b4f9c17261213c394aa635580bf.
I got another one: [1 Debug 21:20:35.890] Service disposed (PlayerEngine) Domain: 'Gtk' Level: Critical Message: gtk_action_group_get_action: assertion `GTK_IS_ACTION_GROUP (action_group)' failed Trace follows: at GLib.Log.PrintTraceLogFunction(System.String domain, LogLevelFlags level, System.String message) at GLib.Log.NativeCallback(IntPtr log_domain_native, LogLevelFlags flags, IntPtr message_native, IntPtr user_data) at Gtk.ActionGroup.gtk_action_group_get_action(IntPtr , IntPtr ) at Gtk.ActionGroup.GetAction(System.String action_name) at Gtk.ActionGroup.get_Item(System.String name) at Banshee.PlayQueue.PlayQueueActions.OnPlaybackSourceChanged(System.Object sender, System.EventArgs e) at Banshee.PlaybackController.PlaybackControllerService.OnSourceChanged() at Banshee.PlaybackController.PlaybackControllerService.set_Source(ITrackModelSource value) at Banshee.PlaybackController.PlaybackControllerService.set_NextSource(ITrackModelSource value) at Banshee.PlaybackController.PlaybackControllerService.set_Source(ITrackModelSource value) at Banshee.PlaybackController.PlaybackControllerService.<PlaybackControllerService>m__34(Banshee.Sources.SourceEventArgs ) at Banshee.Sources.SourceManager.SetActiveSource(Banshee.Sources.Source source, Boolean notify) at Banshee.Sources.SourceManager.SetActiveSource(Banshee.Sources.Source source) at Banshee.Sources.SourceManager+<RemoveSource>c__AnonStorey2A.<>m__4E() at Hyena.ThreadAssist.ProxyToMain(Hyena.InvokeHandler handler) at Banshee.Sources.SourceManager.RemoveSource(Banshee.Sources.Source source, Boolean recursivelyDispose) at Banshee.Sources.SourceManager.Dispose() at Banshee.ServiceStack.ServiceManager.Shutdown() at Banshee.ServiceStack.Application.Dispose() at Banshee.ServiceStack.Application.Shutdown() at Banshee.Gui.GlobalActions.OnQuit(System.Object o, System.EventArgs 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 GLib.Signal.ClosureInvokedCB(System.Object o, GLib.ClosureInvokedArgs args) at GLib.SignalClosure.Invoke(GLib.ClosureInvokedArgs args) at GLib.SignalClosure.MarshalCallback(IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data) at Gtk.Application.gtk_main() at Gtk.Application.Run() at Banshee.Gui.GtkBaseClient.Run() at Banshee.Gui.GtkBaseClient.Startup() at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) at Banshee.Gui.GtkBaseClient.Startup() at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) at Nereid.Client.Main(System.String[] args)
And I fixed that last one here: https://git.gnome.org/browse/banshee/commit/?id=c721e23213cf305f445885ece56fc0b8c4b82279 Which was also causing this NRE labeled as a warning in the console: [1 Warn 21:20:35.921] Service disposal (SourceManager) threw an exception - System.NullReferenceException: Object reference not set to an instance of an object (in `Banshee.PlayQueue') at Banshee.PlayQueue.PlayQueueActions.OnPlaybackSourceChanged (System.Object sender, System.EventArgs e) [0x0003e] in /home/knocte/Documents/Code/bansheePRISTINE/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueActions.cs:141 at (wrapper delegate-invoke) <Module>:invoke_void__this___object_EventArgs (object,System.EventArgs) at Banshee.PlaybackController.PlaybackControllerService.OnSourceChanged () [0x00016] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:440 at Banshee.PlaybackController.PlaybackControllerService.set_Source (ITrackModelSource value) [0x00028] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:484 at Banshee.PlaybackController.PlaybackControllerService.set_NextSource (ITrackModelSource value) [0x00033] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:497 at Banshee.PlaybackController.PlaybackControllerService.set_Source (ITrackModelSource value) [0x00010] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:481 at Banshee.PlaybackController.PlaybackControllerService.<PlaybackControllerService>m__34 (Banshee.Sources.SourceEventArgs ) [0x00040] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:103 at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at (wrapper delegate-invoke) <Module>:invoke_void__this___SourceEventArgs (Banshee.Sources.SourceEventArgs) at Banshee.Sources.SourceManager.SetActiveSource (Banshee.Sources.Source source, Boolean notify) [0x00095] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:415 at Banshee.Sources.SourceManager.SetActiveSource (Banshee.Sources.Source source) [0x00004] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:387 at Banshee.Sources.SourceManager+<RemoveSource>c__AnonStorey2A.<>m__4E () [0x0005b] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:252 at Hyena.ThreadAssist.ProxyToMain (Hyena.InvokeHandler handler) [0x0001f] in /home/knocte/Documents/Code/bansheePRISTINE/src/Hyena/Hyena/Hyena/ThreadAssist.cs:103 at Banshee.Sources.SourceManager.RemoveSource (Banshee.Sources.Source source, Boolean recursivelyDispose) [0x00168] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:247 at Banshee.Sources.SourceManager.Dispose () [0x00056] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:105 at Banshee.ServiceStack.ServiceManager.Shutdown () [0x0002a] in /home/knocte/Documents/Code/bansheePRISTINE/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:297 [1 Debug 21:20:35.922] Service disposed (Network)