Bug 280096

Summary: Crash soon after startup after migration to 4.7.0 and Akonadi
Product: [Frameworks and Libraries] Akonadi Reporter: Maarten ter Huurne <maarten>
Component: Mail Filter AgentAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED WORKSFORME    
Severity: crash CC: briank, maarten, montel
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 4.8
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
Third backtrace, again similar but not the same

Description Maarten ter Huurne 2011-08-14 22:31:12 UTC
Application: kontact (4.7.0)
KDE Platform Version: 4.7.00 (4.7.0) "release 10"
Qt Version: 4.7.3
Operating System: Linux 2.6.37.1-1.2-desktop x86_64
Distribution (Platform): openSUSE RPMs

-- Information about the crash:
- What I was doing when the application crashed:

Today I migrated from KDE 4.6.x to 4.7.0 and also to a new Kontact/KMail. The conversion went fine, according to the migration wizard.

I gave the migration tool one-time access to my KWallet and Akonadi forever access. However, KMail did prompt for my e-mail passwords soon after the migration was finished. This may have nothing to do with the crash, but I'm mentioning it just in case.

When Kontact was running after the migration, it was very unresponsive and there was a lot of harddisk activity. It wasn't swapping, so it must have been activity on files. I saw some mails pop up in the Inbox with subjects in blue, which were later filtered out to the mailbox they belong in. After a while, Kontact crashed while I was reorganising the width of the different panes.

I restarted Kontact and didn't touch it and it continued to do something that caused harddisk activity and a while later it crashed again. And now if I start it, it crashes within seconds of being launched.

I'm using local maildir storage for most of my mail and I have also configured a GMail account via IMAP.

The crash can be reproduced every time.

-- Backtrace:
Application: Kontact (kontact), signal: Segmentation fault
[Current thread is 1 (Thread 0x7ff59c4ab760 (LWP 9000))]

Thread 2 (Thread 0x7ff585b26700 (LWP 9001)):
#0  0x00007ff59485438c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ff598ed21d4 in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /usr/lib64/libQtWebKit.so.4
#2  0x00007ff59484fa3f in start_thread () from /lib64/libpthread.so.0
#3  0x00007ff599a7467d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ff59c4ab760 (LWP 9000)):
[KCrash Handler]
#6  0x00007ff596cf5e15 in QList<Akonadi::Item>::clear() () from /usr/lib64/libakonadi-kde.so.4
#7  0x00007ff596cb7435 in Akonadi::ItemFetchJob::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libakonadi-kde.so.4
#8  0x00007ff59ae2da5f in QMetaObject::activate (sender=0x5c97ca0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3278
#9  0x00007ff59ae2d0a9 in QObject::event (this=0x5c97ca0, e=<value optimized out>) at kernel/qobject.cpp:1181
#10 0x00007ff59a1e1144 in QApplicationPrivate::notify_helper (this=0x6424a0, receiver=0x5c97ca0, e=0x7fff8fe21790) at kernel/qapplication.cpp:4462
#11 0x00007ff59a1e96fa in QApplication::notify (this=<value optimized out>, receiver=0x5c97ca0, e=0x7fff8fe21790) at kernel/qapplication.cpp:4341
#12 0x00007ff59b85f736 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#13 0x00007ff59ae1947c in QCoreApplication::notifyInternal (this=0x7fff8fe24730, receiver=0x5c97ca0, event=0x7fff8fe21790) at kernel/qcoreapplication.cpp:731
#14 0x00007ff59ae46df8 in sendEvent (this=0x649280) at kernel/qcoreapplication.h:215
#15 QTimerInfoList::activateTimers (this=0x649280) at kernel/qeventdispatcher_unix.cpp:619
#16 0x00007ff59ae43b54 in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:184
#17 0x00007ff5934debd3 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#18 0x00007ff5934df3b0 in ?? () from /lib64/libglib-2.0.so.0
#19 0x00007ff5934df650 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#20 0x00007ff59ae4422f in QEventDispatcherGlib::processEvents (this=0x612790, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#21 0x00007ff59a286bae in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#22 0x00007ff59ae188d2 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#23 0x00007ff59ae18ae5 in QEventLoop::exec (this=0x7fff8fe21aa0, flags=...) at kernel/qeventloop.cpp:201
#24 0x00007ff59b2833c6 in KJob::exec() () from /usr/lib64/libkdecore.so.5
#25 0x00007ff580c72060 in MailCommon::SearchRuleString::matchesInternal(QString const&) const () from /usr/lib64/libmailcommon.so.4
#26 0x00007ff580c75220 in MailCommon::SearchRuleString::matches(Akonadi::Item const&) const () from /usr/lib64/libmailcommon.so.4
#27 0x00007ff580c74380 in MailCommon::SearchPattern::matches(Akonadi::Item const&, bool) const () from /usr/lib64/libmailcommon.so.4
#28 0x00007ff580c43d02 in MailCommon::FilterManager::Private::isMatching(Akonadi::Item const&, MailCommon::MailFilter const*) () from /usr/lib64/libmailcommon.so.4
#29 0x00007ff580c447a0 in MailCommon::FilterManager::process(Akonadi::Item const&, MailCommon::FilterManager::FilterSet, bool, QString const&) () from /usr/lib64/libmailcommon.so.4
#30 0x00007ff580c467fd in MailCommon::FilterManager::Private::slotItemsFetchedForFilter(QList<Akonadi::Item> const&) () from /usr/lib64/libmailcommon.so.4
#31 0x00007ff580c46e02 in MailCommon::FilterManager::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libmailcommon.so.4
#32 0x00007ff59ae2da5f in QMetaObject::activate (sender=0x5550740, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff8fe22560) at kernel/qobject.cpp:3278
#33 0x00007ff596c31e52 in Akonadi::ItemFetchJob::itemsReceived(QList<Akonadi::Item> const&) () from /usr/lib64/libakonadi-kde.so.4
#34 0x00007ff596cb746b in Akonadi::ItemFetchJob::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libakonadi-kde.so.4
#35 0x00007ff59ae2da5f in QMetaObject::activate (sender=0x5550740, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff8fe22680) at kernel/qobject.cpp:3278
#36 0x00007ff59b2835a2 in KJob::result(KJob*) () from /usr/lib64/libkdecore.so.5
#37 0x00007ff59b2835e0 in KJob::emitResult() () from /usr/lib64/libkdecore.so.5
#38 0x00007ff596c5bfdd in Akonadi::Job::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libakonadi-kde.so.4
#39 0x00007ff596cb73b5 in Akonadi::ItemFetchJob::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libakonadi-kde.so.4
#40 0x00007ff59ae2d37a in QObject::event (this=0x5550740, e=<value optimized out>) at kernel/qobject.cpp:1217
#41 0x00007ff59a1e1144 in QApplicationPrivate::notify_helper (this=0x6424a0, receiver=0x5550740, e=0x67bbdf0) at kernel/qapplication.cpp:4462
#42 0x00007ff59a1e96fa in QApplication::notify (this=<value optimized out>, receiver=0x5550740, e=0x67bbdf0) at kernel/qapplication.cpp:4341
#43 0x00007ff59b85f736 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#44 0x00007ff59ae1947c in QCoreApplication::notifyInternal (this=0x7fff8fe24730, receiver=0x5550740, event=0x67bbdf0) at kernel/qcoreapplication.cpp:731
#45 0x00007ff59ae1cc75 in sendEvent (receiver=0x0, event_type=0, data=0x612f80) at kernel/qcoreapplication.h:215
#46 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x612f80) at kernel/qcoreapplication.cpp:1372
#47 0x00007ff59ae44093 in sendPostedEvents (s=0x647df0) at kernel/qcoreapplication.h:220
#48 postEventSourceDispatch (s=0x647df0) at kernel/qeventdispatcher_glib.cpp:277
#49 0x00007ff5934debd3 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#50 0x00007ff5934df3b0 in ?? () from /lib64/libglib-2.0.so.0
#51 0x00007ff5934df650 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#52 0x00007ff59ae4422f in QEventDispatcherGlib::processEvents (this=0x612790, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#53 0x00007ff59a286bae in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#54 0x00007ff59ae188d2 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#55 0x00007ff59ae18ae5 in QEventLoop::exec (this=0x7fff8fe23090, flags=...) at kernel/qeventloop.cpp:201
#56 0x00007ff59b2833c6 in KJob::exec() () from /usr/lib64/libkdecore.so.5
#57 0x00007ff580c72060 in MailCommon::SearchRuleString::matchesInternal(QString const&) const () from /usr/lib64/libmailcommon.so.4
#58 0x00007ff580c75220 in MailCommon::SearchRuleString::matches(Akonadi::Item const&) const () from /usr/lib64/libmailcommon.so.4
#59 0x00007ff580c74380 in MailCommon::SearchPattern::matches(Akonadi::Item const&, bool) const () from /usr/lib64/libmailcommon.so.4
#60 0x00007ff580c43d02 in MailCommon::FilterManager::Private::isMatching(Akonadi::Item const&, MailCommon::MailFilter const*) () from /usr/lib64/libmailcommon.so.4
#61 0x00007ff580c447a0 in MailCommon::FilterManager::process(Akonadi::Item const&, MailCommon::FilterManager::FilterSet, bool, QString const&) () from /usr/lib64/libmailcommon.so.4
#62 0x00007ff580c467fd in MailCommon::FilterManager::Private::slotItemsFetchedForFilter(QList<Akonadi::Item> const&) () from /usr/lib64/libmailcommon.so.4
#63 0x00007ff580c46e02 in MailCommon::FilterManager::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libmailcommon.so.4
#64 0x00007ff59ae2da5f in QMetaObject::activate (sender=0x3407350, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff8fe23b50) at kernel/qobject.cpp:3278
#65 0x00007ff596c31e52 in Akonadi::ItemFetchJob::itemsReceived(QList<Akonadi::Item> const&) () from /usr/lib64/libakonadi-kde.so.4
#66 0x00007ff596cb746b in Akonadi::ItemFetchJob::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libakonadi-kde.so.4
#67 0x00007ff59ae2da5f in QMetaObject::activate (sender=0x3407350, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff8fe23c70) at kernel/qobject.cpp:3278
#68 0x00007ff59b2835a2 in KJob::result(KJob*) () from /usr/lib64/libkdecore.so.5
#69 0x00007ff59b2835e0 in KJob::emitResult() () from /usr/lib64/libkdecore.so.5
#70 0x00007ff596c5bfdd in Akonadi::Job::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libakonadi-kde.so.4
#71 0x00007ff596cb73b5 in Akonadi::ItemFetchJob::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libakonadi-kde.so.4
#72 0x00007ff59ae2d37a in QObject::event (this=0x3407350, e=<value optimized out>) at kernel/qobject.cpp:1217
#73 0x00007ff59a1e1144 in QApplicationPrivate::notify_helper (this=0x6424a0, receiver=0x3407350, e=0x611bb40) at kernel/qapplication.cpp:4462
#74 0x00007ff59a1e96fa in QApplication::notify (this=<value optimized out>, receiver=0x3407350, e=0x611bb40) at kernel/qapplication.cpp:4341
#75 0x00007ff59b85f736 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#76 0x00007ff59ae1947c in QCoreApplication::notifyInternal (this=0x7fff8fe24730, receiver=0x3407350, event=0x611bb40) at kernel/qcoreapplication.cpp:731
#77 0x00007ff59ae1cc75 in sendEvent (receiver=0x0, event_type=0, data=0x612f80) at kernel/qcoreapplication.h:215
#78 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x612f80) at kernel/qcoreapplication.cpp:1372
#79 0x00007ff59ae44093 in sendPostedEvents (s=0x647df0) at kernel/qcoreapplication.h:220
#80 postEventSourceDispatch (s=0x647df0) at kernel/qeventdispatcher_glib.cpp:277
#81 0x00007ff5934debd3 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#82 0x00007ff5934df3b0 in ?? () from /lib64/libglib-2.0.so.0
#83 0x00007ff5934df650 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#84 0x00007ff59ae4422f in QEventDispatcherGlib::processEvents (this=0x612790, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#85 0x00007ff59a286bae in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#86 0x00007ff59ae188d2 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#87 0x00007ff59ae18ae5 in QEventLoop::exec (this=0x7fff8fe24680, flags=...) at kernel/qeventloop.cpp:201
#88 0x00007ff59ae1cf2b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#89 0x000000000040416f in main ()

Possible duplicates by query: bug 280025, bug 279609, bug 279262, bug 278358, bug 277948.

Reported using DrKonqi
Comment 1 Maarten ter Huurne 2011-08-14 22:37:14 UTC
Created attachment 62828 [details]
New crash information added by DrKonqi

kontact (4.7.0) on KDE Platform 4.7.00 (4.7.0) "release 10" using Qt 4.7.3

I just got another crash with the same symptoms but different methods at the top of the stack trace. So I attached it in case it gives a better picture of what is wrong.

-- Backtrace (Reduced):
#6  ~QVector (x=0x75584c0) at ../../src/corelib/tools/qvector.h:119
#7  ~QRegionPrivate (x=0x75584c0) at painting/qregion.cpp:1085
#8  QRegion::cleanUp (x=0x75584c0) at painting/qregion.cpp:3904
#9  0x00007f1e797299d2 in QRegion::operator= (this=<value optimized out>, r=...) at painting/qregion.cpp:3928
#10 0x00007f1e79798be7 in QX11PaintEngine::begin (this=0xeb1d20, pdev=0x80cee8) at painting/qpaintengine_x11.cpp:504
Comment 2 Maarten ter Huurne 2011-08-14 22:47:31 UTC
Created attachment 62829 [details]
Third backtrace, again similar but not the same

Attached a third backtrace.
Is it normal to have a 400-level call stack or did recursion go wrong? MailCommon::SearchRuleString::matchesInternal is in this backtrace 13 times...
Comment 3 Maarten ter Huurne 2011-08-14 23:59:32 UTC
Workaround found: if I edit ~/.kde4/share/config/kmail2rc to remove all my filters, KMail seems to be stable.
Comment 4 Maarten ter Huurne 2011-08-15 13:24:39 UTC
I waited until Akonadi had finished processing the contents of the maildirs and then re-added my filters 10 at a time (I have 44 in total). It seems to be stable now.

So the bug might be some kind of race condition that occurs when new mails (from the point of view of KMail: the files are not new but their availability through Akonadi is) are coming in at a fast pace and there are a lot of filters defined. Or perhaps there is a problem if filters are moving mails to the same maildir folder that Akonadi is scanning.
Comment 5 Laurent Montel 2011-08-22 22:22:55 UTC
comment 2 : I fixed it in kmail-4.7.1
Don't know for other crash.
Comment 6 Christophe Marin 2012-01-10 10:30:59 UTC
*** Bug 287386 has been marked as a duplicate of this bug. ***
Comment 7 Maarten ter Huurne 2012-08-21 17:05:34 UTC
I haven't had any more of these crashes in KDE 4.8 and 4.9.
Comment 8 Myriam Schweingruber 2012-08-25 14:23:07 UTC
Thank you for the feedback.