Bug 317055 - Removing resource from KOrganizer crashes KMail
Summary: Removing resource from KOrganizer crashes KMail
Status: RESOLVED FIXED
Alias: None
Product: kmail2
Classification: Applications
Component: general (show other bugs)
Version: 4.11 pre
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-20 00:18 UTC by Daniel Vrátil
Modified: 2013-06-24 07:51 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 4.11


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Vrátil 2013-03-20 00:18:48 UTC
Application: kmail (4.11 pre)
KDE Platform Version: 4.10.1 (Compiled from sources)
Qt Version: 4.8.4
Operating System: Linux 3.8.3-201.fc18.x86_64 x86_64
Distribution: "Fedora release 18 (Spherical Cow)"

-- Information about the crash:
- What I was doing when the application crashed:
I had KMail minimized and running. I removed an Akonadi resource (Google Calendar resource to be specific) from KOrganizer and switched back to KMail. At that moment KMail crashed.

The problem is apparently in some of the proxy models on top of ETM which does not handle removed collections that don't have message/rfc822 mimetype.

This crash can be fixed by not loading non-email collections in ETM (see https://git.reviewboard.kde.org/r/109259/). It's been requested in the review though that the crash is properly investigated and the faulty proxy model is fixed. hence this report.

Note that the crash can be reproduced on several other places in ETM (all of them asserts) using the steps.

The crash can be reproduced every time.

-- Backtrace:
Application: KMail (kmail), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
40	  int result = INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL);
[Current thread is 1 (Thread 0x7fa913da2880 (LWP 12836))]

Thread 6 (Thread 0x7fa908509700 (LWP 12842)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165
#1  0x0000003d938a0e85 in WTF::TCMalloc_PageHeap::scavengerThread (this=0x3d94333a20 <WTF::pageheap_memory>) at /usr/src/debug/webkit-qtwebkit-23/Source/WTF/wtf/FastMalloc.cpp:2571
#2  0x0000003d938a0ed9 in WTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at /usr/src/debug/webkit-qtwebkit-23/Source/WTF/wtf/FastMalloc.cpp:1767
#3  0x00000039070aa764 in ?? () from /usr/lib64/nvidia/libGL.so.1
#4  0x0000003dfbc07d15 in start_thread (arg=0x7fa908509700) at pthread_create.c:308
#5  0x0000003dfb4f246d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:114

Thread 5 (Thread 0x7fa8c6aa0700 (LWP 12843)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165
#1  0x0000003d935e74f9 in JSC::BlockAllocator::blockFreeingThreadMain (this=0x7fa907c72398) at /usr/src/debug/webkit-qtwebkit-23/Source/JavaScriptCore/heap/BlockAllocator.cpp:128
#2  0x0000003d938cf60e in WTF::wtfThreadEntryPoint (param=0x13b4bd0) at /usr/src/debug/webkit-qtwebkit-23/Source/WTF/wtf/ThreadingPthreads.cpp:196
#3  0x00000039070aa764 in ?? () from /usr/lib64/nvidia/libGL.so.1
#4  0x0000003dfbc07d15 in start_thread (arg=0x7fa8c6aa0700) at pthread_create.c:308
#5  0x0000003dfb4f246d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:114

Thread 4 (Thread 0x7fa8c5450700 (LWP 12845)):
#0  0x00000038ffa19ae0 in pthread_mutex_unlock@plt () from /lib64/libglib-2.0.so.0
#1  0x00000038ffa84dd1 in g_mutex_unlock (mutex=mutex@entry=0x7fa8bc0009d0) at gthread-posix.c:229
#2  0x00000038ffa475ab in g_main_context_prepare (context=context@entry=0x7fa8bc0009d0, priority=priority@entry=0x7fa8c544fae8) at gmain.c:2984
#3  0x00000038ffa47c4b in g_main_context_iterate (context=context@entry=0x7fa8bc0009d0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3270
#4  0x00000038ffa47e44 in g_main_context_iteration (context=0x7fa8bc0009d0, may_block=1) at gmain.c:3351
#5  0x0000003e6f7a6126 in QEventDispatcherGlib::processEvents (this=0x7fa8bc0008f0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0x0000003e6f77680f in QEventLoop::processEvents (this=this@entry=0x7fa8c544fc40, flags=...) at kernel/qeventloop.cpp:149
#7  0x0000003e6f776a98 in QEventLoop::exec (this=0x7fa8c544fc40, flags=...) at kernel/qeventloop.cpp:204
#8  0x0000003e6f678980 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:542
#9  0x0000003e6f67b95c in QThreadPrivate::start (arg=0x13050e0) at thread/qthread_unix.cpp:338
#10 0x00000039070aa764 in ?? () from /usr/lib64/nvidia/libGL.so.1
#11 0x0000003dfbc07d15 in start_thread (arg=0x7fa8c5450700) at pthread_create.c:308
#12 0x0000003dfb4f246d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:114

Thread 3 (Thread 0x7fa8b616e700 (LWP 13272)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:217
#1  0x0000003e6f67be17 in wait (time=30000, this=0x14ee970) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x14ef158, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x0000003e6f66f69f in QThreadPoolThread::run (this=0x1504720) at concurrent/qthreadpool.cpp:141
#4  0x0000003e6f67b95c in QThreadPrivate::start (arg=0x1504720) at thread/qthread_unix.cpp:338
#5  0x00000039070aa764 in ?? () from /usr/lib64/nvidia/libGL.so.1
#6  0x0000003dfbc07d15 in start_thread (arg=0x7fa8b616e700) at pthread_create.c:308
#7  0x0000003dfb4f246d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:114

Thread 2 (Thread 0x7fa8c5e70700 (LWP 13274)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:217
#1  0x0000003e6f67be17 in wait (time=30000, this=0x1d72eb0) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x1db0fd8, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x0000003e6f66f69f in QThreadPoolThread::run (this=0x1dae8e0) at concurrent/qthreadpool.cpp:141
#4  0x0000003e6f67b95c in QThreadPrivate::start (arg=0x1dae8e0) at thread/qthread_unix.cpp:338
#5  0x00000039070aa764 in ?? () from /usr/lib64/nvidia/libGL.so.1
#6  0x0000003dfbc07d15 in start_thread (arg=0x7fa8c5e70700) at pthread_create.c:308
#7  0x0000003dfb4f246d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:114

Thread 1 (Thread 0x7fa913da2880 (LWP 12836)):
[KCrash Handler]
#5  0x0000003dfb435ba5 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:63
#6  0x0000003dfb437358 in __GI_abort () at abort.c:90
#7  0x0000003e6f671564 in qt_message_output (msgType=msgType@entry=QtFatalMsg, buf=<optimized out>) at global/qglobal.cpp:2323
#8  0x0000003e6f671718 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, msg=0x3e6f7da448 "ASSERT: \"%s\" in file %s, line %d", ap=ap@entry=0x7fff8845f0a8) at global/qglobal.cpp:2369
#9  0x0000003e6f6718a4 in qFatal (msg=<optimized out>) at global/qglobal.cpp:2552
#10 0x00007fa91a5e5dc0 in Akonadi::CollectionStatisticsDelegate::paint (this=<optimized out>, painter=0x7fff8845fa20, option=..., index=...) at /home/progdan/projects/kde/kdepimlibs/akonadi/collectionstatisticsdelegate.cpp:238
#11 0x00000033bd70f2a3 in QTreeView::drawRow (this=0xce80d0, painter=0x7fff8845fa20, option=..., index=...) at itemviews/qtreeview.cpp:1694
#12 0x00000033bd713b7f in QTreeView::drawTree (this=this@entry=0xce80d0, painter=painter@entry=0x7fff8845fa20, region=...) at itemviews/qtreeview.cpp:1447
#13 0x00000033bd71437c in QTreeView::paintEvent (this=0xce80d0, event=0x7fff88460690) at itemviews/qtreeview.cpp:1275
#14 0x00000033bd219efe in QWidget::event (this=0xce80d0, event=0x7fff88460690) at kernel/qwidget.cpp:8532
#15 0x00000033bd5c49f6 in QFrame::event (this=0xce80d0, e=0x7fff88460690) at widgets/qframe.cpp:557
#16 0x00000033bd6d020b in QAbstractItemView::viewportEvent (this=0xce80d0, event=0x7fff88460690) at itemviews/qabstractitemview.cpp:1644
#17 0x00000033bd714a91 in QTreeView::viewportEvent (this=0xce80d0, event=0x7fff88460690) at itemviews/qtreeview.cpp:1257
#18 0x0000003e6f777c26 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>, receiver=0xd43af0, event=0x7fff88460690) at kernel/qcoreapplication.cpp:1056
#19 0x00000033bd1ca59c in QApplicationPrivate::notify_helper (this=0xc889c0, receiver=0xd43af0, e=0x7fff88460690) at kernel/qapplication.cpp:4558
#20 0x00000033bd1cea4a in QApplication::notify (this=0x7fff88464330, receiver=0xd43af0, e=0x7fff88460690) at kernel/qapplication.cpp:4423
#21 0x0000003d896473c6 in KApplication::notify (this=0x7fff88464330, receiver=0xd43af0, event=0x7fff88460690) at /usr/src/debug/kdelibs-4.10.1/kdeui/kernel/kapplication.cpp:311
#22 0x0000003e6f777abe in QCoreApplication::notifyInternal (this=0x7fff88464330, receiver=0xd43af0, event=0x7fff88460690) at kernel/qcoreapplication.cpp:946
#23 0x00000033bd215ac4 in QWidgetPrivate::drawWidget (this=0xeef550, pdev=0xedd720, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at ../../src/corelib/kernel/qcoreapplication.h:234
#24 0x00000033bd2165bf in QWidgetPrivate::paintSiblingsRecursive (this=0x11e00b0, pdev=0xedd720, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5807
#25 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x11e00b0, pdev=0xedd720, siblings=..., index=3, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#26 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x11e00b0, pdev=0xedd720, siblings=..., index=9, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#27 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x11e00b0, pdev=0xedd720, siblings=..., index=10, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#28 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x11e00b0, pdev=0xedd720, siblings=..., index=11, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#29 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x11e00b0, pdev=0xedd720, siblings=..., index=12, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#30 0x00000033bd215655 in QWidgetPrivate::drawWidget (this=0x11e00b0, pdev=0xedd720, rgn=..., offset=..., flags=<optimized out>, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5651
#31 0x00000033bd2165bf in QWidgetPrivate::paintSiblingsRecursive (this=0x105bbe0, pdev=0xedd720, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5807
#32 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x105bbe0, pdev=0xedd720, siblings=..., index=2, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#33 0x00000033bd215655 in QWidgetPrivate::drawWidget (this=0x105bbe0, pdev=0xedd720, rgn=..., offset=..., flags=<optimized out>, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5651
#34 0x00000033bd2165bf in QWidgetPrivate::paintSiblingsRecursive (this=0x13ec840, pdev=0xedd720, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5807
#35 0x00000033bd215655 in QWidgetPrivate::drawWidget (this=0x13ec840, pdev=0xedd720, rgn=..., offset=..., flags=<optimized out>, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5651
#36 0x00000033bd2165bf in QWidgetPrivate::paintSiblingsRecursive (this=0x1546010, pdev=0xedd720, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5807
#37 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x1546010, pdev=0xedd720, siblings=..., index=0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#38 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x1546010, pdev=0xedd720, siblings=..., index=2, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#39 0x00000033bd215655 in QWidgetPrivate::drawWidget (this=0x1546010, pdev=0xedd720, rgn=..., offset=..., flags=<optimized out>, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5651
#40 0x00000033bd2165bf in QWidgetPrivate::paintSiblingsRecursive (this=0x15456b0, pdev=0xedd720, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5807
#41 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x15456b0, pdev=0xedd720, siblings=..., index=0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#42 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x15456b0, pdev=0xedd720, siblings=..., index=1, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#43 0x00000033bd215655 in QWidgetPrivate::drawWidget (this=0x15456b0, pdev=0xedd720, rgn=..., offset=..., flags=<optimized out>, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5651
#44 0x00000033bd2165bf in QWidgetPrivate::paintSiblingsRecursive (this=0x105e800, pdev=0xedd720, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5807
#45 0x00000033bd215655 in QWidgetPrivate::drawWidget (this=0x105e800, pdev=0xedd720, rgn=..., offset=..., flags=<optimized out>, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5651
#46 0x00000033bd2165bf in QWidgetPrivate::paintSiblingsRecursive (this=0x1068070, pdev=0xedd720, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5807
#47 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x1068070, pdev=0xedd720, siblings=..., index=6, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#48 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x1068070, pdev=0xedd720, siblings=..., index=10, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#49 0x00000033bd216404 in QWidgetPrivate::paintSiblingsRecursive (this=0x1068070, pdev=0xedd720, siblings=..., index=26, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5794
#50 0x00000033bd215655 in QWidgetPrivate::drawWidget (this=0x1068070, pdev=0xedd720, rgn=..., offset=..., flags=<optimized out>, sharedPainter=0x0, backingStore=0x1316530) at kernel/qwidget.cpp:5651
#51 0x00000033bd3dfde8 in QWidgetBackingStore::sync (this=0x1316530) at painting/qbackingstore.cpp:1373
#52 0x00000033bd20a5f0 in QWidgetPrivate::syncBackingStore (this=0x1068070) at kernel/qwidget.cpp:1896
#53 0x00000033bd21a3a4 in QWidget::event (this=0xcee040, event=0x41155d0) at kernel/qwidget.cpp:8679
#54 0x00000033bd5ddf2b in QMainWindow::event (this=0xcee040, event=0x41155d0) at widgets/qmainwindow.cpp:1478
#55 0x0000003d89739758 in KXmlGuiWindow::event (this=0xcee040, ev=0x41155d0) at /usr/src/debug/kdelibs-4.10.1/kdeui/xmlgui/kxmlguiwindow.cpp:126
#56 0x00000033bd1ca5cc in QApplicationPrivate::notify_helper (this=0xc889c0, receiver=0xcee040, e=0x41155d0) at kernel/qapplication.cpp:4562
#57 0x00000033bd1cea4a in QApplication::notify (this=0x7fff88464330, receiver=0xcee040, e=0x41155d0) at kernel/qapplication.cpp:4423
#58 0x0000003d896473c6 in KApplication::notify (this=0x7fff88464330, receiver=0xcee040, event=0x41155d0) at /usr/src/debug/kdelibs-4.10.1/kdeui/kernel/kapplication.cpp:311
#59 0x0000003e6f777abe in QCoreApplication::notifyInternal (this=0x7fff88464330, receiver=receiver@entry=0xcee040, event=event@entry=0x41155d0) at kernel/qcoreapplication.cpp:946
#60 0x0000003e6f77b571 in sendEvent (event=0x41155d0, receiver=0xcee040) at kernel/qcoreapplication.h:231
#61 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xb552d0) at kernel/qcoreapplication.cpp:1570
#62 0x0000003e6f7a5f73 in sendPostedEvents () at kernel/qcoreapplication.h:236
#63 postEventSourceDispatch (s=s@entry=0xc9fd60) at kernel/qeventdispatcher_glib.cpp:279
#64 0x00000038ffa47a55 in g_main_dispatch (context=0xca0200) at gmain.c:2715
#65 g_main_context_dispatch (context=context@entry=0xca0200) at gmain.c:3219
#66 0x00000038ffa47d88 in g_main_context_iterate (context=context@entry=0xca0200, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3290
#67 0x00000038ffa47e44 in g_main_context_iteration (context=0xca0200, may_block=1) at gmain.c:3351
#68 0x0000003e6f7a6106 in QEventDispatcherGlib::processEvents (this=0xb56af0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#69 0x00000033bd26a73e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:207
#70 0x0000003e6f77680f in QEventLoop::processEvents (this=this@entry=0x7fff88464270, flags=...) at kernel/qeventloop.cpp:149
#71 0x0000003e6f776a98 in QEventLoop::exec (this=0x7fff88464270, flags=...) at kernel/qeventloop.cpp:204
#72 0x0000003e6f77b888 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#73 0x0000000000402636 in main (argc=3, argv=0x7fff88464548) at /home/progdan/projects/kde/kdepim/kmail/main.cpp:146

Reported using DrKonqi
Comment 1 Allen Winter 2013-06-22 15:05:15 UTC
still valid?  the reviewboard patch you mentioned has been submitted
so I'm wondering if this is resolved now.
Comment 2 Daniel Vrátil 2013-06-24 07:51:38 UTC
No more KMail crashes when removing a resource from elsewhere.

I still occasionally get similar crashes in the delegate, but they happen randomly and for a different reason. I'll report it separately once it happens to me again.