GNOME Bugzilla – Bug 652161
Banshee dies when DAAP share disappears
Last modified: 2011-11-14 19:06:15 UTC
This has been a long-standing issue for me. I can successfully reproduce this everytime by simply restart mt-daapd on my local server broadcasting itself via avahi. This has been especially painful on public networks such as coffee shops, campus, etc Error: thansen@15z ~ $ banshee [Info 17:49:06.483] Running Banshee 2.0.0: [Gentoo/banshee/2.0.0 (linux-gnu, x86_64) @ 2011-06-04 16:49:11 MDT] [Info 17:49:07.266] Updating web proxy from GConf [Info 17:49:07.276] All services are started 0.637041 [Info 17:49:08.553] nereid Client Started [Info 17:49:08.613] GStreamer version 0.10.32.0, gapless: True, replaygain: False [Info 17:50:07.720] Uncached artwork size 34 requested Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary`2[NDesk.DBus.MatchRule,System.Delegate].get_Item (NDesk.DBus.MatchRule key) [0x00000] in <filename unknown>:0 at NDesk.DBus.BusObject.ToggleSignal (System.String iface, System.String member, System.Delegate dlg, Boolean adding) [0x00000] in <filename unknown>:0 at IAvahiServiceResolverProxy.remove_Failure (Mono.Zeroconf.Providers.AvahiDBus.ServiceResolverErrorHandler ) [0x00000] in <filename unknown>:0 at Mono.Zeroconf.Providers.AvahiDBus.BrowseService.DisposeResolver () [0x00000] in <filename unknown>:0 at Mono.Zeroconf.Providers.AvahiDBus.BrowseService.Dispose () [0x00000] in <filename unknown>:0 at Mono.Zeroconf.Providers.AvahiDBus.ServiceBrowser.OnItemRemove (Int32 interface, Protocol protocol, System.String name, System.String type, System.String domain, LookupResultFlags flags) [0x00000] in <filename unknown>:0 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0 at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0 at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <filename unknown>:0 at NDesk.DBus.Connection.HandleSignal (NDesk.DBus.Message msg) [0x00000] in <filename unknown>:0 at NDesk.DBus.Connection.DispatchSignals () [0x00000] in <filename unknown>:0 at NDesk.DBus.PendingCall.get_Reply () [0x00000] in <filename unknown>:0 at NDesk.DBus.Connection.SendWithReplyAndBlock (NDesk.DBus.Message msg) [0x00000] in <filename unknown>:0 at NDesk.DBus.BusObject.SendMethodCall (System.String iface, System.String member, System.String inSigStr, NDesk.DBus.MessageWriter writer, System.Type retType, System.Exception& exception) [0x00000] in <filename unknown>:0 at IBusProxy.RemoveMatch (System.String ) [0x00000] in <filename unknown>:0 at NDesk.DBus.Bus.RemoveMatch (System.String rule) [0x00000] in <filename unknown>:0 at NDesk.DBus.BusObject.ToggleSignal (System.String iface, System.String member, System.Delegate dlg, Boolean adding) [0x00000] in <filename unknown>:0 at IAvahiServiceResolverProxy.remove_Found (Mono.Zeroconf.Providers.AvahiDBus.ServiceResolverFoundHandler ) [0x00000] in <filename unknown>:0 at Mono.Zeroconf.Providers.AvahiDBus.BrowseService.DisposeResolver () [0x00000] in <filename unknown>:0 at Mono.Zeroconf.Providers.AvahiDBus.BrowseService.Dispose () [0x00000] in <filename unknown>:0 at Mono.Zeroconf.Providers.AvahiDBus.ServiceBrowser.OnItemRemove (Int32 interface, Protocol protocol, System.String name, System.String type, System.String domain, LookupResultFlags flags) [0x00000] in <filename unknown>:0 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 --- End of inner exception stack trace --- at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0 at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0 at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <filename unknown>:0 at NDesk.DBus.Connection.HandleSignal (NDesk.DBus.Message msg) [0x00000] in <filename unknown>:0 at NDesk.DBus.Connection.DispatchSignals () [0x00000] in <filename unknown>:0 at NDesk.DBus.Connection.Iterate () [0x00000] in <filename unknown>:0 at Mono.Zeroconf.Providers.AvahiDBus.DBusManager.IterateThread (System.Object o) [0x00000] in <filename unknown>:0
This looks similar to bug #662309, which is in fact a bug in Mono.Zeroconf. The fix for that is at https://github.com/mono/Mono.Zeroconf/pull/6 Could you try to apply that fix at see if it solves your issue ?
Applying the patch to mono-zeroconf has resolved the crash. Now that this issue is fixed, I've noticed that upon restarting (after a full stop and waiting some period of vs. simply restarting the service) the mt-daapd server does not make the item re-appear in the list. I don't if this is a regression or simply never worked, but the crash is fixed. Thanks!
Created attachment 201330 [details] [review] Attaching patch for good measure This is the patch applied to mono-zeroconf-0.9.0 to resolve the crash.
Thanks for trying the patch. So I'm marking this bug as a duplicate. As for the share not re-appearing, please check whether this issue has already been filed, and if not, please file a new bug. *** This bug has been marked as a duplicate of bug 662309 ***