[Kde-pim] Review Request: Fix for Control::start() not detecting success
Volker Krause
vkrause at kde.org
Mon Jun 7 08:38:37 BST 2010
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/4250/#review6004
-----------------------------------------------------------
Ship it!
Looks good, trunk already has the reloading on service owner changed logic but lacks the re-creation of the interface. Should be ported there as well I guess.
- Volker
On 2010-06-06 23:29:39, Kevin Krammer wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/4250/
> -----------------------------------------------------------
>
> (Updated 2010-06-06 23:29:39)
>
>
> Review request for KDE PIM.
>
>
> Summary
> -------
>
> The observed problem is that when KMail starts, it attempts to start Akonadi, but after a timeout tells the user that it failed because Akonadi couldn't find any resources.
>
> Some distributions have increased the timeout to give Akonadi more time to complete startup, but the problem is that ServerManager is never signalling server startup at all.
>
> ServerManager does check the server's status on several occasions, however, one of the checks is asking AgentManager for the agent types and verifying that at least one of them is a resource.
> Unfortunately AgentManager is always empty, because its D-Bus interface gets created right in AgentManager's contructor, which is invoked from ServerManager's constructor, which means there hasn't even been an attempt of starting yet.
>
> So the D-Bus interface is invalid and QtDBus doesn't make it valid at a later time. None of the slots connected to the interface's signals get ever called, the AgentManager instance remains empty.
> Which mean ServerManager can never satisfy its "operational" check and Control always runs into its timeout.
>
> The patch makes AgentManager check the validity of the interface and if it is not, waits for the control D-Bus name to be registered before recreating th e interface and rechecking for registered agent types.
>
>
> This addresses bug 236538.
> https://bugs.kde.org/show_bug.cgi?id=236538
>
>
> Diffs
> -----
>
> /branches/KDE/4.4/kdepimlibs/akonadi/agentmanager.h 1135240
> /branches/KDE/4.4/kdepimlibs/akonadi/agentmanager.cpp 1135240
> /branches/KDE/4.4/kdepimlibs/akonadi/agentmanager_p.h 1135240
>
> Diff: http://reviewboard.kde.org/r/4250/diff
>
>
> Testing
> -------
>
> Applied the changed to the Debian source package for kdepimlibs and installed the modified libakonadi-kde package to test with the otherwise unchanged KDE 4.4 setup of Debian unstable.
>
>
> Thanks,
>
> Kevin
>
>
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list