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.
_______________________________________________
SyncEvolution mailing list
[email protected]
http://lists.syncevolution.org/listinfo/syncevolution