On Thu, 2012-04-19 at 21:36 +0200, Frederik Elwert wrote:
Hello,
I recently noticed an issue in Genesis: I have Genesis in autostart, and
sometimes when trying to sync it does nothing, throwing this exception:
DBusException in call_blocking():
org.freedesktop.DBus.Error.ServiceUnknown: The name :1.50 was
not provided by any .service files
I am not exactly sure how to reproduce it, but it seems it only happens
a) when Genesis is started on startup (I was not able to reproduce it
when launching Genesis manually later), and b) Genesis runs for a while
before being used for the first time.
Any idea what could be causing this? Might this be caused by the
syncevolution dbus-server going down after a while?
That should indeed be it. To fix the problem, when establishing the
connection to org.syncevolution.server, don't allow binding to the
current owner. get_object() has a follow_name_owner_changes keyword for
that:
follow_name_owner_changes (bool) - If the object path is a
well-known name and this parameter is false (default), resolve
the well-known name to the unique name of its current owner and
bind to that instead; if the ownership of the well-known name
changes in future, keep communicating with the original owner.
This is necessary if the D-Bus API used is stateful.
If the object path is a well-known name and this parameter is
true, whenever the well-known name changes ownership in future,
bind to the new owner, if any.
If the given object path is a unique name, this parameter has no
effect.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.