Application: kmail (4.7.1) KDE Platform Version: 4.7.1 (4.7.1) Qt Version: 4.7.3 Operating System: OpenBSD 5.0 i386 Distribution (Platform): OpenBSD Packages -- Information about the crash: - What I was doing when the application crashed: I rebooted the system with "reboot": disk caches flushed, user processes get two seconds for exiting normally, then receive SIGKILL. After sometime booted OpenBSD again, started X (CWM, no KWin or Plasma running), started Kontact. It loaded, I had ever a chance to click in "Tip of the day" window, and after a few seconds it crashed. I saw Kontact crashes before not worrying enough about them yet, so I started KMail alone - unexpectedly, with the same result. I will try to narrow the problem down and add any useful info I could get here. - Custom settings of the application: KDE was built with "-DCMAKE_BUILD_TYPE:String=Debug". This is not an official KDE 4.7.1 port, but porting effort actually. Qt version is 4.7.3. Threading library used - libpthread (usermode threads, process is actuall single threaded). The crash can be reproduced every time. -- Backtrace: Application: KMail (kmail), signal: Abort trap [KCrash Handler] #12 0x0c1ec67d in kill () from /usr/lib/libc.so.60.1 #13 0x0c252de5 in abort () at /usr/src/lib/libc/stdlib/abort.c:68 #14 0x093560c9 in qt_message_output () from /usr/local/lib/qt4/libQtCore.so.9.0 #15 0x09356303 in qt_message_output () from /usr/local/lib/qt4/libQtCore.so.9.0 #16 0x09356409 in qFatal () from /usr/local/lib/qt4/libQtCore.so.9.0 #17 0x0935644c in qt_assert_x () from /usr/local/lib/qt4/libQtCore.so.9.0 #18 0x10091dea in QList<Node*>::takeAt (this=0x89d64570, i=-1) at qlist.h:472 #19 0x1008aa26 in Akonadi::EntityTreeModelPrivate::monitoredItemMoved (this=0x825e8580, item=@0xcfbe3a60, sourceCollection=@0xcfbe3a88, destCollection=@0xcfbe3a84) at /usr/ports/pobj/kdepimlibs-4.7.1-debug/kdepimlibs-4.7.1/akonadi/entitytreemodel_p.cpp:1093 #20 0x1007dfc6 in Akonadi::EntityTreeModel::qt_metacall (this=0x825f5990, _c=QMetaObject::InvokeMetaMethod, _id=28, _a=0xcfbe39b4) at entitytreemodel.moc:170 #21 0x09476153 in QMetaObject::metacall () from /usr/local/lib/qt4/libQtCore.so.9.0 #22 0x094873af in QMetaObject::activate () from /usr/local/lib/qt4/libQtCore.so.9.0 #23 0x100c881f in Akonadi::Monitor::itemMoved (this=0x886d5ee0, _t1=@0xcfbe3a60, _t2=@0xcfbe3a88, _t3=@0xcfbe3a84) at monitor.moc:176 #24 0x100cb83a in Akonadi::MonitorPrivate::emitItemNotification (this=0x88c3d480, msg=@0xcfbe3bd8, item=@0xcfbe3acc, collection=@0xcfbe3ad8, collectionDest=@0xcfbe3ad4) at /usr/ports/pobj/kdepimlibs-4.7.1-debug/kdepimlibs-4.7.1/akonadi/monitor_p.cpp:520 #25 0x100ccf0a in Akonadi::MonitorPrivate::emitNotification (this=0x88c3d480, msg=@0xcfbe3bd8) at /usr/ports/pobj/kdepimlibs-4.7.1-debug/kdepimlibs-4.7.1/akonadi/monitor_p.cpp:284 #26 0x1003d9ff in Akonadi::ChangeRecorderPrivate::emitNotification (this=0x88c3d480, msg=@0xcfbe3bd8) at changerecorder_p.h:60 #27 0x100cc6a4 in Akonadi::MonitorPrivate::flushPipeline (this=0x88c3d480) at /usr/ports/pobj/kdepimlibs-4.7.1-debug/kdepimlibs-4.7.1/akonadi/monitor_p.cpp:425 #28 0x100cc702 in Akonadi::MonitorPrivate::dataAvailable (this=0x88c3d480) at /usr/ports/pobj/kdepimlibs-4.7.1-debug/kdepimlibs-4.7.1/akonadi/monitor_p.cpp:434 #29 0x100c8bec in Akonadi::Monitor::qt_metacall (this=0x886d5ee0, _c=QMetaObject::InvokeMetaMethod, _id=23, _a=0xcfbe3ce0) at monitor.moc:156 #30 0x1003a7aa in Akonadi::ChangeRecorder::qt_metacall (this=0x886d5ee0, _c=QMetaObject::InvokeMetaMethod, _id=27, _a=0xcfbe3ce0) at changerecorder.moc:72 #31 0x09476153 in QMetaObject::metacall () from /usr/local/lib/qt4/libQtCore.so.9.0 #32 0x094873af in QMetaObject::activate () from /usr/local/lib/qt4/libQtCore.so.9.0 #33 0x10076f87 in Akonadi::EntityCacheBase::dataAvailable (this=0x825e4aa0) at entitycache_p.moc:88 #34 0x100d0dea in Akonadi::EntityCache<Akonadi::Item, Akonadi::ItemFetchJob, Akonadi::ItemFetchScope>::fetchResult (this=0x825e4aa0, job=0x887958e0) at entitycache_p.h:190 #35 0x1007700c in Akonadi::EntityCacheBase::qt_metacall (this=0x825e4aa0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xcfbe3e4c) at entitycache_p.moc:77 #36 0x09476153 in QMetaObject::metacall () from /usr/local/lib/qt4/libQtCore.so.9.0 #37 0x094873af in QMetaObject::activate () from /usr/local/lib/qt4/libQtCore.so.9.0 #38 0x0dcc73e3 in KJob::result (this=0x887958e0, _t1=0x887958e0) at kjob.moc:194 #39 0x0dcc7829 in KJob::emitResult (this=0x887958e0) at /usr/ports/pobj/kdelibs-4.7.1-debug/kdelibs-4.7.1/kdecore/jobs/kjob.cpp:312 #40 0x100c4515 in Akonadi::JobPrivate::delayedEmitResult (this=0x7ee0be00) at /usr/ports/pobj/kdepimlibs-4.7.1-debug/kdepimlibs-4.7.1/akonadi/job.cpp:143 #41 0x100c498f in Akonadi::Job::qt_metacall (this=0x887958e0, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x88894450) at job.moc:91 #42 0x100b278a in Akonadi::ItemFetchJob::qt_metacall (this=0x887958e0, _c=QMetaObject::InvokeMetaMethod, _id=34, _a=0x88894450) at itemfetchjob.moc:73 #43 0x09476153 in QMetaObject::metacall () from /usr/local/lib/qt4/libQtCore.so.9.0 #44 0x09481f96 in QMetaCallEvent::placeMetaCall () from /usr/local/lib/qt4/libQtCore.so.9.0 #45 0x09483253 in QObject::event () from /usr/local/lib/qt4/libQtCore.so.9.0 #46 0x01d9de1c in QApplicationPrivate::notify_helper () from /usr/local/lib/qt4/libQtGui.so.10.0 #47 0x01da5dc5 in QApplication::notify () from /usr/local/lib/qt4/libQtGui.so.10.0 #48 0x051eb728 in KApplication::notify (this=0xcfbe4714, receiver=0x887958e0, event=0x82c602c0) at /usr/ports/pobj/kdelibs-4.7.1-debug/kdelibs-4.7.1/kdeui/kernel/kapplication.cpp:311 #49 0x0946f83b in QCoreApplication::notifyInternal () from /usr/local/lib/qt4/libQtCore.so.9.0 #50 0x09470b2f in QCoreApplicationPrivate::sendPostedEvents () from /usr/local/lib/qt4/libQtCore.so.9.0 #51 0x09470d4d in QCoreApplication::sendPostedEvents () from /usr/local/lib/qt4/libQtCore.so.9.0 #52 0x094a2274 in QEventDispatcherGlib::registeredTimers () from /usr/local/lib/qt4/libQtCore.so.9.0 #53 0x055ec397 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.2800.0 #54 0x055f043e in g_main_context_prepare () from /usr/local/lib/libglib-2.0.so.2800.0 #55 0x055f0a65 in g_main_context_iteration () from /usr/local/lib/libglib-2.0.so.2800.0 #56 0x094a269b in QEventDispatcherGlib::processEvents () from /usr/local/lib/qt4/libQtCore.so.9.0 #57 0x01e63855 in QGuiEventDispatcherGlib::processEvents () from /usr/local/lib/qt4/libQtGui.so.10.0 #58 0x0946ea03 in QEventLoop::processEvents () from /usr/local/lib/qt4/libQtCore.so.9.0 #59 0x0946ec9a in QEventLoop::exec () from /usr/local/lib/qt4/libQtCore.so.9.0 #60 0x09470e16 in QCoreApplication::exec () from /usr/local/lib/qt4/libQtCore.so.9.0 #61 0x01d9d707 in QApplication::exec () from /usr/local/lib/qt4/libQtGui.so.10.0 #62 0x1c002bee in main (argc=) at /usr/ports/pobj/kdepim-4.7.1-debug/kdepim-4.7.1/kmail/main.cpp:145 Thread 3 (process 17293, thread 0x876b8000): #1 0x084fb71f in _thread_kern_sched_state_unlock (state=PS_COND_WAIT, lock=0x87002e58, fname=0x284e8e14 "/usr/src/lib/libpthread/uthread/uthread_cond.c", lineno=262) at /usr/src/lib/libpthread/uthread/uthread_kern.c:601 #2 0x084f8083 in pthread_cond_wait (cond=0x2aba69bc, mutex=0x2aba69b8) at /usr/src/lib/libpthread/uthread/uthread_cond.c:261 #3 0x0ba611e5 in WTF::TCMalloc_PageHeap::scavengerThread () from /usr/local/lib/qt4/libQtWebKit.so.2.0 #4 0x0ba6127d in WTF::TCMalloc_PageHeap::runScavengerThread () from /usr/local/lib/qt4/libQtWebKit.so.2.0 #5 0x084f25be in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:242 #6 0x0000002b in ?? () #7 0x00000000 in ?? () Thread 2 (process 17293, thread 0x876b8800): #1 0x084fb71f in _thread_kern_sched_state_unlock (state=PS_COND_WAIT, lock=0x83c2d218, fname=0x284e8e14 "/usr/src/lib/libpthread/uthread/uthread_cond.c", lineno=432) at /usr/src/lib/libpthread/uthread/uthread_kern.c:601 #2 0x084f7ad7 in pthread_cond_timedwait (cond=0x284ea120, mutex=0x284ea11c, abstime=0x812aefc0) at /usr/src/lib/libpthread/uthread/uthread_cond.c:431 #3 0x084f2b9e in _thread_gc (arg=0x0) at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 #4 0x084f25be in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:242 #5 0x0000002b in ?? () #6 0x00000000 in ?? () Thread 1 (process 17293, thread 0x7d150800): #1 0x0c20871d in times (tp=0x85969d14) at /usr/src/lib/libc/gen/times.c:48 #2 0x094a469f in QTimerInfoList::timeChanged () from /usr/local/lib/qt4/libQtCore.so.9.0 #3 0x094a48a2 in QTimerInfoList::repairTimersIfNeeded () from /usr/local/lib/qt4/libQtCore.so.9.0 #4 0x094a48ec in QTimerInfoList::timerWait () from /usr/local/lib/qt4/libQtCore.so.9.0 #5 0x094a2142 in QEventDispatcherGlib::registeredTimers () from /usr/local/lib/qt4/libQtCore.so.9.0 #6 0x055efd13 in g_main_context_prepare () from /usr/local/lib/libglib-2.0.so.2800.0 #7 0x055f017a in g_main_context_prepare () from /usr/local/lib/libglib-2.0.so.2800.0 #8 0x055f0a65 in g_main_context_iteration () from /usr/local/lib/libglib-2.0.so.2800.0 #9 0x094a26b7 in QEventDispatcherGlib::processEvents () from /usr/local/lib/qt4/libQtCore.so.9.0 #10 0x0946ea03 in QEventLoop::processEvents () from /usr/local/lib/qt4/libQtCore.so.9.0 #11 0x0946ec9a in QEventLoop::exec () from /usr/local/lib/qt4/libQtCore.so.9.0 #12 0x0935d6dd in QThread::exec () from /usr/local/lib/qt4/libQtCore.so.9.0 #13 0x09441190 in QPollingFileSystemWatcherEngine::run () from /usr/local/lib/qt4/libQtCore.so.9.0 #14 0x093605e4 in QThreadPrivate::start () from /usr/local/lib/qt4/libQtCore.so.9.0 #15 0x084f25be in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:242 #16 0x0000002b in ?? () #17 0x00000000 in ?? () Reported using DrKonqi
Sorry, I shouldn't say "The crash can be reproduced every time". :( Now KMail started successfully (alone). I'll notify about more crashes.
Just found revision b5c376b0:a2855606 in kdepimlibs: ================================= diff --git a/akonadi/entitytreemodel_p.cpp b/akonadi/entitytreemodel_p.cpp index 285d6ee..30f1a23 100644 --- a/akonadi/entitytreemodel_p.cpp +++ b/akonadi/entitytreemodel_p.cpp @@ -1079,8 +1079,18 @@ void EntityTreeModelPrivate::monitoredItemMoved( const Akonadi::Item& item, } else if ( isHidden( destCollection ) ) { monitoredItemRemoved( item ); return; + } else { + monitoredItemRemoved( item ); + monitoredItemAdded( item, destCollection ); + return; } - + // "Temporarily" commented out as it's likely the best course to + // avoid the dreaded "reset storm" (or layoutChanged storm). The + // whole itemMoved idea is great but not practical until all the + // other proxy models play nicely with it, right now they just + // transform moved signals in layout changed, which explodes into + // a reset of the source model inside of the message list (ouch!) +#if 0 if ( !m_items.contains( item.id() ) ) { kWarning() << "Got a stale notification for an item which was already removed." << item.id() << item.remoteId(); return; @@ -1112,6 +1122,7 @@ void EntityTreeModelPrivate::monitoredItemMoved( const Akonadi::Item& item, node->parent = destCollection.id(); m_childEntities[ destCollection.id() ].append( node ); q->endMoveRows(); +#endif } void EntityTreeModelPrivate::monitoredItemLinked( const Akonadi::Item& item, const Akonadi::Collection& collection ) ================================= Applied and testing now.
Looks like the problem was really fixed by mentioned commit.