[Kde-pim] Review Request: Fix for Control::start() not detecting success

Kevin Krammer kevin.krammer at gmx.at
Mon Jun 7 00:29:40 BST 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/4250/
-----------------------------------------------------------

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