Application: akonadi_imap_resource (4.13) KDE Platform Version: 4.14.4 (Compiled from sources) Qt Version: 4.8.6 Operating System: Linux 3.13.11.8-ck1-kubuntu-amdf10-rjvb x86_64 Distribution: Ubuntu 14.04.2 LTS -- Information about the crash: - What I was doing when the application crashed: I was simply trying to move to the next unread email message when I first got an "account is offline" warning and then this crash. Isn't there a more elegant way to handle the condition in a release/production version than crashing through a Q_ASSERT?! -- Backtrace: Application: RJVB@gmail of type IMAP E-Mail Server (akonadi_imap_resource), signal: Aborted Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Current thread is 1 (Thread 0x7fcd1a3457c0 (LWP 14505))] Thread 9 (Thread 0x7fcd05572700 (LWP 25271)): #0 0x00007fff4a7dbcf8 in clock_gettime () #1 0x00007fcd1589392d in __GI___clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:115 #2 0x00007fcd195ec229 in do_gettime (frac=<synthetic pointer>, sec=<synthetic pointer>) at tools/qelapsedtimer_unix.cpp:127 #3 qt_gettime () at tools/qelapsedtimer_unix.cpp:144 #4 0x00007fcd196dc015 in updateCurrentTime (this=0x7fccf8003320) at kernel/qeventdispatcher_unix.cpp:354 #5 QTimerInfoList::timerWait (this=0x7fccf8003320, tm=...) at kernel/qeventdispatcher_unix.cpp:460 #6 0x00007fcd196da747 in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7fcd05571c64) at kernel/qeventdispatcher_glib.cpp:143 #7 0x00007fcd196da825 in timerSourcePrepare (source=<optimized out>, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:176 #8 0x00007fcd1437f68d in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #9 0x00007fcd1437ff03 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #10 0x00007fcd143800ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #11 0x00007fcd196db1ee in QEventDispatcherGlib::processEvents (this=0x7fccf80221c0, flags=...) at kernel/qeventdispatcher_glib.cpp:436 #12 0x00007fcd196a704f in QEventLoop::processEvents (this=this@entry=0x7fcd05571e20, flags=...) at kernel/qeventloop.cpp:149 #13 0x00007fcd196a7395 in QEventLoop::exec (this=this@entry=0x7fcd05571e20, flags=...) at kernel/qeventloop.cpp:204 #14 0x00007fcd1958996d in QThread::exec (this=<optimized out>) at thread/qthread.cpp:538 #15 0x00007fcd1958c5a3 in QThreadPrivate::start (arg=0x18871b0) at thread/qthread_unix.cpp:349 #16 0x00007fcd14ca9182 in start_thread (arg=0x7fcd05572700) at pthread_create.c:312 #17 0x00007fcd1588547d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 8 (Thread 0x7fccfe3d2700 (LWP 31627)): #0 0x00007fcd14cab569 in __GI___pthread_mutex_lock (mutex=0x7fccec00d180) at ../nptl/pthread_mutex_lock.c:125 #1 0x00007fcd143c1981 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fcd1437f699 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fcd1437ff03 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #4 0x00007fcd143800ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #5 0x00007fcd196db1ee in QEventDispatcherGlib::processEvents (this=0x7fccec0122b0, flags=...) at kernel/qeventdispatcher_glib.cpp:436 #6 0x00007fcd196a704f in QEventLoop::processEvents (this=this@entry=0x7fccfe3d1e20, flags=...) at kernel/qeventloop.cpp:149 #7 0x00007fcd196a7395 in QEventLoop::exec (this=this@entry=0x7fccfe3d1e20, flags=...) at kernel/qeventloop.cpp:204 #8 0x00007fcd1958996d in QThread::exec (this=<optimized out>) at thread/qthread.cpp:538 #9 0x00007fcd1958c5a3 in QThreadPrivate::start (arg=0x18458b0) at thread/qthread_unix.cpp:349 #10 0x00007fcd14ca9182 in start_thread (arg=0x7fccfe3d2700) at pthread_create.c:312 #11 0x00007fcd1588547d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 7 (Thread 0x7fccff235700 (LWP 5212)): #0 0x00007fcd1587682d in read () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fcd143c0c10 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fcd1437fb14 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fcd1437ff7b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #4 0x00007fcd143800ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #5 0x00007fcd196db1ee in QEventDispatcherGlib::processEvents (this=0x7fccf400bb80, flags=...) at kernel/qeventdispatcher_glib.cpp:436 #6 0x00007fcd196a704f in QEventLoop::processEvents (this=this@entry=0x7fccff234e20, flags=...) at kernel/qeventloop.cpp:149 #7 0x00007fcd196a7395 in QEventLoop::exec (this=this@entry=0x7fccff234e20, flags=...) at kernel/qeventloop.cpp:204 #8 0x00007fcd1958996d in QThread::exec (this=<optimized out>) at thread/qthread.cpp:538 #9 0x00007fcd1958c5a3 in QThreadPrivate::start (arg=0x1386a10) at thread/qthread_unix.cpp:349 #10 0x00007fcd14ca9182 in start_thread (arg=0x7fccff235700) at pthread_create.c:312 #11 0x00007fcd1588547d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 6 (Thread 0x7fccfd3d0700 (LWP 32307)): #0 0x00007fcd14cab42e in __GI___pthread_mutex_lock (mutex=0x7fcce4003a30) at ../nptl/pthread_mutex_lock.c:74 #1 0x00007fcd143c1981 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fcd1437f92e in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fcd1437ff7b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #4 0x00007fcd143800ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #5 0x00007fcd196db1ee in QEventDispatcherGlib::processEvents (this=0x7fcce400d640, flags=...) at kernel/qeventdispatcher_glib.cpp:436 #6 0x00007fcd196a704f in QEventLoop::processEvents (this=this@entry=0x7fccfd3cfe20, flags=...) at kernel/qeventloop.cpp:149 #7 0x00007fcd196a7395 in QEventLoop::exec (this=this@entry=0x7fccfd3cfe20, flags=...) at kernel/qeventloop.cpp:204 #8 0x00007fcd1958996d in QThread::exec (this=<optimized out>) at thread/qthread.cpp:538 #9 0x00007fcd1958c5a3 in QThreadPrivate::start (arg=0x1836aa0) at thread/qthread_unix.cpp:349 #10 0x00007fcd14ca9182 in start_thread (arg=0x7fccfd3d0700) at pthread_create.c:312 #11 0x00007fcd1588547d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 5 (Thread 0x7fcd05d73700 (LWP 6692)): #0 0x00007fcd1587812d in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fcd1437ffe4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fcd143800ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fcd196db1ee in QEventDispatcherGlib::processEvents (this=0x7fcd00034b40, flags=...) at kernel/qeventdispatcher_glib.cpp:436 #4 0x00007fcd196a704f in QEventLoop::processEvents (this=this@entry=0x7fcd05d72e20, flags=...) at kernel/qeventloop.cpp:149 #5 0x00007fcd196a7395 in QEventLoop::exec (this=this@entry=0x7fcd05d72e20, flags=...) at kernel/qeventloop.cpp:204 #6 0x00007fcd1958996d in QThread::exec (this=<optimized out>) at thread/qthread.cpp:538 #7 0x00007fcd1958c5a3 in QThreadPrivate::start (arg=0x18857e0) at thread/qthread_unix.cpp:349 #8 0x00007fcd14ca9182 in start_thread (arg=0x7fcd05d73700) at pthread_create.c:312 #9 0x00007fcd1588547d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 4 (Thread 0x7fcce3fff700 (LWP 9395)): #0 0x00007fff4a7db7d1 in clock_gettime () #1 0x00007fcd1589392d in __GI___clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:115 #2 0x00007fcd195ec229 in do_gettime (frac=<synthetic pointer>, sec=<synthetic pointer>) at tools/qelapsedtimer_unix.cpp:127 #3 qt_gettime () at tools/qelapsedtimer_unix.cpp:144 #4 0x00007fcd196dc015 in updateCurrentTime (this=0x7fccdc001270) at kernel/qeventdispatcher_unix.cpp:354 #5 QTimerInfoList::timerWait (this=0x7fccdc001270, tm=...) at kernel/qeventdispatcher_unix.cpp:460 #6 0x00007fcd196da747 in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7fcce3ffec64) at kernel/qeventdispatcher_glib.cpp:143 #7 0x00007fcd196da825 in timerSourcePrepare (source=<optimized out>, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:176 #8 0x00007fcd1437f68d in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #9 0x00007fcd1437ff03 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #10 0x00007fcd143800ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #11 0x00007fcd196db1ee in QEventDispatcherGlib::processEvents (this=0x7fccdc012020, flags=...) at kernel/qeventdispatcher_glib.cpp:436 #12 0x00007fcd196a704f in QEventLoop::processEvents (this=this@entry=0x7fcce3ffee20, flags=...) at kernel/qeventloop.cpp:149 #13 0x00007fcd196a7395 in QEventLoop::exec (this=this@entry=0x7fcce3ffee20, flags=...) at kernel/qeventloop.cpp:204 #14 0x00007fcd1958996d in QThread::exec (this=<optimized out>) at thread/qthread.cpp:538 #15 0x00007fcd1958c5a3 in QThreadPrivate::start (arg=0x1828290) at thread/qthread_unix.cpp:349 #16 0x00007fcd14ca9182 in start_thread (arg=0x7fcce3fff700) at pthread_create.c:312 #17 0x00007fcd1588547d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 3 (Thread 0x7fcce37fe700 (LWP 10662)): #0 0x00007fcd143c161d in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #1 0x00007fcd143c1979 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fcd1437ffca in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fcd143800ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #4 0x00007fcd196db1ee in QEventDispatcherGlib::processEvents (this=0x7fccd40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:436 #5 0x00007fcd196a704f in QEventLoop::processEvents (this=this@entry=0x7fcce37fde20, flags=...) at kernel/qeventloop.cpp:149 #6 0x00007fcd196a7395 in QEventLoop::exec (this=this@entry=0x7fcce37fde20, flags=...) at kernel/qeventloop.cpp:204 #7 0x00007fcd1958996d in QThread::exec (this=<optimized out>) at thread/qthread.cpp:538 #8 0x00007fcd1958c5a3 in QThreadPrivate::start (arg=0x17b4180) at thread/qthread_unix.cpp:349 #9 0x00007fcd14ca9182 in start_thread (arg=0x7fcce37fe700) at pthread_create.c:312 #10 0x00007fcd1588547d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 2 (Thread 0x7fccfdbd1700 (LWP 11442)): #0 0x00007fcd143c1616 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #1 0x00007fcd143c19a9 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fcd1437fe9d in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fcd143800ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #4 0x00007fcd196db1ee in QEventDispatcherGlib::processEvents (this=0x7fccf00008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:436 #5 0x00007fcd196a704f in QEventLoop::processEvents (this=this@entry=0x7fccfdbd0e20, flags=...) at kernel/qeventloop.cpp:149 #6 0x00007fcd196a7395 in QEventLoop::exec (this=this@entry=0x7fccfdbd0e20, flags=...) at kernel/qeventloop.cpp:204 #7 0x00007fcd1958996d in QThread::exec (this=<optimized out>) at thread/qthread.cpp:538 #8 0x00007fcd1958c5a3 in QThreadPrivate::start (arg=0x13b6270) at thread/qthread_unix.cpp:349 #9 0x00007fcd14ca9182 in start_thread (arg=0x7fccfdbd1700) at pthread_create.c:312 #10 0x00007fcd1588547d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 1 (Thread 0x7fcd1a3457c0 (LWP 14505)): [KCrash Handler] #6 0x00007fcd157c1cc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #7 0x00007fcd157c50d8 in __GI_abort () at abort.c:89 #8 0x00007fcd19581058 in qt_message_output (msgType=<optimized out>, msgType@entry=QtFatalMsg, buf=0x1906b08 "ASSERT: \"uids.size()==1\" in file ../../../resources/imap/retrieveitemtask.cpp, line 101") at global/qglobal.cpp:2386 #9 0x00007fcd19581417 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, msg=0x7fcd19712f78 "ASSERT: \"%s\" in file %s, line %d", ap=ap@entry=0x7fff4a70efa8) at global/qglobal.cpp:2432 #10 0x00007fcd19581c74 in qFatal (msg=<optimized out>) at global/qglobal.cpp:2615 #11 0x00000000004610d1 in RetrieveItemTask::onMessagesReceived (this=0x17ac910, mailBox=..., uids=..., messages=...) at ../../../resources/imap/retrieveitemtask.cpp:101 #12 0x00007fcd196beeb1 in QMetaObject::activate (sender=0x1670300, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff4a70f230) at kernel/qobject.cpp:3638 #13 0x00007fcd1831ca28 in messagesReceived (this=0x38a9, _t1=..., _t2=..., _t3=...) at ./moc_fetchjob.cpp:121 #14 KIMAP::FetchJobPrivate::emitPendings (this=0x1887f50) at ../../kimap/fetchjob.cpp:60 #15 0x00007fcd18318b9d in KIMAP::FetchJob::handleResponse (this=0x1670300, response=...) at ../../kimap/fetchjob.cpp:249 #16 0x00007fcd1832e9fd in KIMAP::SessionPrivate::responseReceived (this=0x1839d90, response=...) at ../../kimap/session.cpp:300 #17 0x00007fcd1833038d in KIMAP::SessionPrivate::qt_static_metacall (_o=0x1839d90, _c=<optimized out>, _id=<optimized out>, _a=0x7fccf0015090) at ./moc_session_p.cpp:77 #18 0x00007fcd196c3d39 in QObject::event (this=0x1839d90, e=<optimized out>) at kernel/qobject.cpp:1222 #19 0x00007fcd18a6582c in QApplicationPrivate::notify_helper (this=0x115db50, receiver=0x1839d90, e=0x7fccf0010c70) at kernel/qapplication.cpp:4570 #20 0x00007fcd18a6bd1b in QApplication::notify (this=0x7fff4a70fd90, receiver=0x38a9, e=0x7fccf0010c70) at kernel/qapplication.cpp:4356 #21 0x00007fcd168b7a27 in KApplication::notify (this=0x7fff4a70fd90, receiver=0x1839d90, event=0x7fccf0010c70) at ../../kdeui/kernel/kapplication.cpp:321 #22 0x00007fcd196a862c in QCoreApplication::notifyInternal (this=0x7fff4a70fd90, receiver=receiver@entry=0x1839d90, event=event@entry=0x7fccf0010c70) at kernel/qcoreapplication.cpp:953 #23 0x00007fcd196ac497 in sendEvent (event=0x7fccf0010c70, receiver=0x1839d90) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231 #24 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, receiver@entry=0x7fcd196db040 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)>, event_type=event_type@entry=0, data=0x111a220) at kernel/qcoreapplication.cpp:1577 #25 0x00007fcd196ac847 in QCoreApplication::sendPostedEvents (receiver=0x7fcd196db040 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)>, receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1470 #26 0x00007fcd196db053 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236 #27 postEventSourceDispatch (s=0x114af30) at kernel/qeventdispatcher_glib.cpp:287 #28 0x00007fcd1437fe04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #29 0x00007fcd14380048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #30 0x00007fcd143800ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #31 0x00007fcd196db1cf in QEventDispatcherGlib::processEvents (this=0x111b700, flags=...) at kernel/qeventdispatcher_glib.cpp:434 #32 0x00007fcd18b040c6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #33 0x00007fcd196a704f in QEventLoop::processEvents (this=this@entry=0x7fff4a70fd20, flags=...) at kernel/qeventloop.cpp:149 #34 0x00007fcd196a7395 in QEventLoop::exec (this=this@entry=0x7fff4a70fd20, flags=...) at kernel/qeventloop.cpp:204 #35 0x00007fcd196ad509 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1225 #36 0x00007fcd19e07ac3 in Akonadi::ResourceBase::init (r=0x16729c0) at ../../akonadi/resourcebase.cpp:556 #37 0x0000000000421077 in Akonadi::ResourceBase::init<ImapResource> (argc=<optimized out>, argv=<optimized out>) at /usr/include/akonadi/resourcebase.h:192 #38 0x00007fcd157acec5 in __libc_start_main (main=0x420540 <main(int, char**)>, argc=3, argv=0x7fff4a70fea8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff4a70fe98) at libc-start.c:287 #39 0x0000000000417c9c in _start () Reported using DrKonqi
Created attachment 99213 [details] New crash information added by DrKonqi akonadi_imap_resource (4.13) on KDE Platform 4.14.19 using Qt 4.8.7 - What I was doing when the application crashed: I opened the Spam folder of a GMail account and selected a message. I think the crash occurred before selecting the message or as an immediate result of that action. The last output from akonadi and kmail: akonadi_imap_resource_14(5671) ResourceState::item: Called item() while state holds multiple items! list is empty list is empty There is not valid message akonadi_imap_resource_14(5671) ResourceState::item: Called item() while state holds multiple items! akonadi_imap_resource_14(5671) ResourceState::item: Called item() while state holds multiple items! akonadi_imap_resource_14(5671) ResourceState::item: Called item() while state holds multiple items! akonadi_imap_resource_14(5671) ResourceState::item: Called item() while state holds multiple items! ASSERT: "uids.size()==1" in file ../../../resources/imap/retrieveitemtask.cpp, line 101 KCrash: Application 'akonadi_imap_resource' crashing... KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit KCrash: Connect sock_file=/home/bertin/.kde/socket-Patux/kdeinit4__0 -- Backtrace (Reduced): #6 0x00007f08f8016c49 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #7 0x00007f08f801a058 in __GI_abort () at abort.c:89 [...] #11 0x00000000004610d1 in RetrieveItemTask::onMessagesReceived (this=0x204f0b0, mailBox=..., uids=..., messages=...) at ../../../resources/imap/retrieveitemtask.cpp:101 [...] #13 0x00007f08fa76da28 in messagesReceived (this=0x1627, _t1=..., _t2=..., _t3=...) at ./moc_fetchjob.cpp:121 #14 KIMAP::FetchJobPrivate::emitPendings (this=0x2206ee0) at ../../kimap/fetchjob.cpp:60
Is there a patch for this in later versions that I could backport?
I fail to see how the "Called item() while state holds multiple items!" warning could possible be produced through RetrieveItemTask. I am not aware of any explicit patch for this issue, I can of course only recommend to try a more recent (supported) version.
Looking at the code it seems that most of those Q_ASSERT statements can be replaced with a handler similar to the `if (!ok)` on line 120.
The code has changed substantially in KF5 and this should no longer happen.