Patrick Ohly changed bug 75672
What Removed Added
Status NEW NEEDINFO
Assignee syncevolution-issues@syncevolution.org patrick.ohly@gmx.de

Comment # 1 on bug 75672 from
(In reply to comment #0)
> When I try to synchronize my computers with syncevo-http-server (which
> starts syncevo-dbus-server), it fails with "Akonadi is not running. It can
> be started with 'akonadictl start'."
> 
> Akonadi however is running and "syncevolution --print-databases" finds the
> akonadi collections.
> 
> The following simple test program prints "Running":
> 
> #include <Akonadi/ServerManager>
> #include <iostream>
> 
> int main()
> {
>         if (Akonadi::ServerManager::isRunning())
>                 std::cout << "Running" << std::endl;
>         else
>                 std::cout << "Not running" << std::endl;
>         return 0;
> }

SyncEvolution should already call Akonadi::ServerManager::isRunning() in
syncevo-dbus-server each time it tries to use an Akonadi source. You can verify
that with:

gdb -p `pidof syncevo-dbus-server` # while syncevo-dbus-server is still running
b SyncEvo::AkonadiSyncSource::start
catch throw
cont

This should break in SyncEvo::AkonadiSyncSource::start. Enter "finish". Instead
of returning from the call, it show break on the exception that you see
("Akonadi is not running. It can be started with 'akonadictl start'.").

Could it be that Akonadi was not running yet when syncevo-dbus-server was
started? Perhaps Akonadi::ServerManager::isRunning() only checks once and then
does not notice when Akonadi gets started later on. Just an idea.

Can you run the check with gdb above and give more information about your Linux
distro? Which version of SyncEvolution?


You are receiving this mail because: