akonadi and it's impact on kde

Kevin Krammer kevin.krammer at gmx.at
Wed Feb 25 11:07:24 GMT 2009


Adding cross-posting to KDE PIM development list.

On Tuesday 24 February 2009, Michael Jansen wrote:
> Hi
>
> Because of commit
> http://websvn.kde.org/trunk/kdesupport/akonadi/server/src/akonadi.cpp?r1=92
>2019&r2=931063 my akonadi failed to start. That's generally spoken no
> problem. We all sometimes commit something that doesn't work.
>
> In this case the missing akonadi both killed kontact and krunner completely
> for me. krunner refused to work. It got stuck in
>
> #0  0x00007f5fcece8d59 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib64/libpthread.so.0
> #1  0x00007f5fcef58849 in QWaitCondition::wait (this=0x88e850,
> mutex=0x88e848, time=18446744073709551615) at
> thread/qwaitcondition_unix.cpp:8
> #2  0x00007f5fcef46ce8 in QFutureInterfaceBase::waitForResult
> (this=0x7fffd97f0930, resultIndex=0) at concurrent/qfutureinterface.cpp:295
> #3  0x00007f5fb2c980bb in QFuture<bool>::result (this=0x82ae5c) at
> /usr/include/QtCore/qfuture.h:169
> #4  0x00007f5fb2c93196 in KABC::ResourceAkonadi::asyncLoad (this=0x836bf0)
> at /home/mjansen/kde4svn/src/kdepim/kresources/akonadi/kabc/resour
> #5  0x00007f5fb3f8093b in KABC::AddressBook::asyncLoad (this=0x899aa0) at
> /home/mjansen/kde4svn/src/kdepimlibs/kabc/addressbook.cpp:369
> #6  0x00007f5fb3fa510c in KABC::StdAddressBook::Private::init
> (this=0x8c18e0, asynchronous=true) at
> /home/mjansen/kde4svn/src/kdepimlibs/kabc
> #7  0x00007f5fb3fa57e8 in KABC::StdAddressBook::self (asynchronous=<value
> optimized out>) at /home/mjansen/kde4svn/src/kdepimlibs/kabc/stdadd
> #8  0x00007f5fb41e8192 in ContactsRunner (this=0x8c9370, parent=<value
> optimized out>, args=<value optimized out>)
>     at /home/mjansen/kde4svn/src/kdeplasma-
> addons/runners/contacts/contactsrunner.cpp:42
>
> Kontact didn't show up at all. It run in the background but the gui didn't
> come up.
>
> There was no way to find out that a missing akonadi was the problem.

One of the problems is that those usages of Akonadi are not visible to the 
application since it is "hidden" in the compatibility layer.

I should probably delay the "start Akonadi if it isn't running" to the 
plugin's open() method since it can indicate failure.

Volker: any idea why the collection fetch job run by the worker thread does 
not exit with an error?
(assuming that this is the reason the main thread is still waiting on the 
QFuture instance)

> We should make sure that a missing helper application doesn't make the kde
> desktop unusable. I can't even begin to imagine the bug reports if such
> behavior happens to an end user.

We do have better support for this for applications using Akonadi directly, 
e.g. lib functionality to disable Akonadi dependent widgets and have them 
show an error overlay.

> Back to the wrong commit: line 236 It goes to the else section too if there
> is no need to update the conf file.
>
> @rdieter: I would have fixed it, but i can guarantee i would have not
> adhered to the coding style so please do it yourself.

We (KDEPIM) started using reviewboard.kde.org for patches outside a 
developer's own code base (and for stuf they want to be reviewed anyway).

The mistake might still have slipped through, but it minimizes the chances.

Cheers,
Kevin

-- 
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20090225/e8fed5da/attachment.sig>
-------------- next part --------------
_______________________________________________
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-core-devel mailing list