[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