Application: kmail (2.0.89) KDE Platform Version: 4.5.85 (4.6 Beta2) Qt Version: 4.7.0 Operating System: Linux 2.6.37-7-generic-pae i686 Distribution: Ubuntu 10.10 -- Information about the crash: - What I was doing when the application crashed: Kmail was in the background when crash occured. Kmail was in the background when crash occured. - Unusual behavior I noticed: -- Backtrace: Application: KMail (kmail), signal: Segmentation fault [Current thread is 1 (Thread 0xb2348730 (LWP 2917))] Thread 3 (Thread 0xaf715b70 (LWP 3064)): #0 0xb788e424 in __kernel_vsyscall () #1 0xb5ae04dc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb606ad9d in pthread_cond_wait () from /lib/libc.so.6 #3 0xb3ecd3a5 in WTF::TCMalloc_PageHeap::scavengerThread (this=0xb43d0680) at wtf/FastMalloc.cpp:2378 #4 0xb3ecd481 in WTF::TCMalloc_PageHeap::runScavengerThread (context=0xb43d0680) at wtf/FastMalloc.cpp:1497 #5 0xb5adbcc9 in start_thread () from /lib/libpthread.so.0 #6 0xb605d69e in clone () from /lib/libc.so.6 Thread 2 (Thread 0xaca40b70 (LWP 3176)): #0 0xb606af3b in pthread_mutex_lock () from /lib/libc.so.6 #1 0xb49155f8 in g_main_context_acquire () from /lib/libglib-2.0.so.0 #2 0xb49171ee in ?? () from /lib/libglib-2.0.so.0 #3 0xb4917848 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #4 0xb638459f in QEventDispatcherGlib::processEvents (this=0xa86a210, flags=...) at kernel/qeventdispatcher_glib.cpp:417 #5 0xb6354609 in QEventLoop::processEvents (this=0xaca40270, flags=) at kernel/qeventloop.cpp:149 #6 0xb6354a8a in QEventLoop::exec (this=0xaca40270, flags=...) at kernel/qeventloop.cpp:201 #7 0xb6250b7e in QThread::exec (this=0xa5d89b8) at thread/qthread.cpp:490 #8 0xb633335b in QInotifyFileSystemWatcherEngine::run (this=0xa5d89b8) at io/qfilesystemwatcher_inotify.cpp:248 #9 0xb6253df9 in QThreadPrivate::start (arg=0xa5d89b8) at thread/qthread_unix.cpp:266 #10 0xb5adbcc9 in start_thread () from /lib/libpthread.so.0 #11 0xb605d69e in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb2348730 (LWP 2917)): [KCrash Handler] #7 QCoreApplication::postEvent (receiver=0xaebc2d8, event=0xa35ff50, priority=0) at kernel/qcoreapplication.cpp:1133 #8 0xb6358aac in QCoreApplication::postEvent (receiver=0xaebc2d8, event=0xa35ff50) at kernel/qcoreapplication.cpp:1094 #9 0xb63672c4 in QObject::deleteLater (this=0xaebc2d8) at kernel/qobject.cpp:2131 #10 0xb4ee0341 in KPIM::ProgressItem::setComplete (this=0xaebc2d8) at ../../libkdepim/progressmanager.cpp:60 #11 0xb4ee221b in KPIM::AgentProgressMonitor::Private::instanceStatusChanged (this=0xb7ae120, instance=...) at ../../libkdepim/agentprogressmonitor.cpp:85 #12 0xb4ee2390 in KPIM::AgentProgressMonitor::qt_metacall (this=0xb759ec8, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0xbfd2aed8) at ./agentprogressmonitor.moc:78 #13 0xb635b8ca in QMetaObject::metacall (object=0xb759ec8, cl=183223000, idx=6, argv=0xbfd2aed8) at kernel/qmetaobject.cpp:237 #14 0xb636e6ad in QMetaObject::activate (sender=0x9e55530, m=0xb57765ac, local_signal_index=4, argv=0x1) at kernel/qobject.cpp:3280 #15 0xb55d3053 in Akonadi::AgentManager::instanceStatusChanged (this=0x9e55530, _t1=...) at ./agentmanager.moc:177 #16 0xb55d34ef in Akonadi::AgentManagerPrivate::agentInstanceStatusChanged (this=0xa0ea728, identifier=..., status=0, msg=...) at ../../akonadi/agentmanager.cpp:129 #17 0xb55d9f53 in Akonadi::AgentManager::qt_metacall (this=0x9e55530, _c=QMetaObject::InvokeMetaMethod, _id=18, _a=0xbfd2b030) at ./agentmanager.moc:131 #18 0xb635b8ca in QMetaObject::metacall (object=0x9e55530, cl=183223000, idx=18, argv=0xbfd2b030) at kernel/qmetaobject.cpp:237 #19 0xb636e6ad in QMetaObject::activate (sender=0xa1bd650, m=0xb577b724, local_signal_index=7, argv=0x1) at kernel/qobject.cpp:3280 #20 0xb570574f in OrgFreedesktopAkonadiAgentManagerInterface::agentInstanceStatusChanged (this=0xa1bd650, _t1=..., _t2=0, _t3=...) at agentmanagerinterface.moc:280 #21 0xb5706004 in OrgFreedesktopAkonadiAgentManagerInterface::qt_metacall (this=0xa1bd650, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xbfd2b40c) at agentmanagerinterface.moc:164 #22 0xb5b809dc in QDBusConnectionPrivate::deliverCall (this=0x9dd20a8, object=0xa1bd650, msg=..., metaTypes=..., slotIdx=12) at qdbusintegrator.cpp:919 #23 0xb5b8c1f7 in QDBusCallDeliveryEvent::placeMetaCall (this=0xb7a8760, object=0xa1bd650) at qdbusintegrator_p.h:103 #24 0xb63686a2 in QObject::event (this=0xa1bd650, e=0x4) at kernel/qobject.cpp:1219 #25 0xb65b5fdc in QApplicationPrivate::notify_helper (this=0x9ddfec0, receiver=0xa1bd650, e=0xb7a8760) at kernel/qapplication.cpp:4396 #26 0xb65bc04e in QApplication::notify (this=0xbfd2bd1c, receiver=0xa1bd650, e=0xb7a8760) at kernel/qapplication.cpp:3798 #27 0xb767e39a in KApplication::notify (this=0xbfd2bd1c, receiver=0xa1bd650, event=0xb7a8760) at ../../kdeui/kernel/kapplication.cpp:311 #28 0xb6355b3b in QCoreApplication::notifyInternal (this=0xbfd2bd1c, receiver=0xa1bd650, event=0xb7a8760) at kernel/qcoreapplication.cpp:732 #29 0xb6358d8b in sendEvent (receiver=0x0, event_type=0, data=0x9dab3c0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x9dab3c0) at kernel/qcoreapplication.cpp:1373 #31 0xb6358f4d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266 #32 0xb6384a74 in sendPostedEvents (s=0x9de2120) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #33 postEventSourceDispatch (s=0x9de2120) at kernel/qeventdispatcher_glib.cpp:277 #34 0xb4913855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #35 0xb4917668 in ?? () from /lib/libglib-2.0.so.0 #36 0xb4917848 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #37 0xb6384565 in QEventDispatcherGlib::processEvents (this=0x9dd2f48, flags=...) at kernel/qeventdispatcher_glib.cpp:415 #38 0xb6677be5 in QGuiEventDispatcherGlib::processEvents (this=0x9dd2f48, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #39 0xb6354609 in QEventLoop::processEvents (this=0xbfd2bc34, flags=) at kernel/qeventloop.cpp:149 #40 0xb6354a8a in QEventLoop::exec (this=0xbfd2bc34, flags=...) at kernel/qeventloop.cpp:201 #41 0xb635900f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 #42 0xb65b4e07 in QApplication::exec () at kernel/qapplication.cpp:3672 #43 0x0804a4e6 in main (argc=3, argv=0xbfd2bed4) at ../../kmail/main.cpp:145 Reported using DrKonqi
Ok I can't see in code why it crashs, but perhaps a deleteLater() is calling by an other function.
Created attachment 55409 [details] New crash information added by DrKonqi kmail (2.0.89) on KDE Platform 4.5.90 (4.6 RC1) using Qt 4.7.1 - What I was doing when the application crashed: i had this crash when i had a kmail conflit (maybe header of message) -- Backtrace (Reduced): #6 QCoreApplication::postEvent (receiver=0x14fc280, event=0x13ab3d0, priority=0) at kernel/qcoreapplication.cpp:1133 #7 0x00007fd3847576bc in KPIM::AgentProgressMonitor::Private::instanceStatusChanged (this=0x15c16c0, instance=...) at ../../libkdepim/agentprogressmonitor.cpp:85 #8 0x00007fd38475775a in KPIM::AgentProgressMonitor::qt_metacall (this=0x15c1590, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff94f4ec10) at ./agentprogressmonitor.moc:78 [...] #10 0x00007fd386cab435 in Akonadi::AgentManager::instanceStatusChanged (this=<value optimized out>, _t1=<value optimized out>) at ./agentmanager.moc:177 #11 0x00007fd386cafb6a in Akonadi::AgentManagerPrivate::agentInstanceStatusChanged (this=0xbb50b0, identifier=<value optimized out>, status=0, msg=...) at ../../akonadi/agentmanager.cpp:129
commit e2af53f0794533454a372db970e5d8587294f084 branch master Author: Tobias Koenig <tokoe@kde.org> Date: Sun Jan 2 16:33:39 2011 +0100 Do not crash on invalid progress item A KPIM::ProgressItem can be deleted at any time, so keep a QPointer on it and check for validity before accessing it. BUG: 260751 diff --git a/libkdepim/agentprogressmonitor.cpp b/libkdepim/agentprogressmonitor.cpp index 320586a..afb6977 100644 --- a/libkdepim/agentprogressmonitor.cpp +++ b/libkdepim/agentprogressmonitor.cpp @@ -19,9 +19,11 @@ #include "agentprogressmonitor.h" +#include <Akonadi/AgentManager> + #include <KDebug> -#include <Akonadi/AgentManager> +#include <QtCore/QPointer> using namespace Akonadi; using namespace KPIM; @@ -43,7 +45,7 @@ class AgentProgressMonitor::Private AgentProgressMonitor *const q; AgentInstance agent; - ProgressItem *const item; + QPointer<ProgressItem> const item; }; void AgentProgressMonitor::Private::abort() @@ -53,10 +55,12 @@ void AgentProgressMonitor::Private::abort() void AgentProgressMonitor::Private::instanceProgressChanged( const AgentInstance &instance ) { - if( agent == instance ) { + if ( !item ) + return; + + if ( agent == instance ) { agent = instance; -// kDebug() << "Progress changed to" << agent.progress(); - if( agent.progress() >= 0 ) { + if ( agent.progress() >= 0 ) { item->setProgress( agent.progress() ); } } @@ -64,28 +68,25 @@ void AgentProgressMonitor::Private::instanceProgressChanged( const AgentInstance void AgentProgressMonitor::Private::instanceStatusChanged( const AgentInstance &instance ) { - if( agent == instance ) { + if ( !item ) + return; + + if ( agent == instance ) { agent = instance; -// kDebug() << "Status changed to" << agent.status() << "message" << agent.statusMessage(); item->setStatus( agent.statusMessage() ); - switch( agent.status() ) { + switch ( agent.status() ) { case AgentInstance::Idle: - { item->setComplete(); break; - } case AgentInstance::Running: - { break; - } case AgentInstance::Broken: - { item->disconnect( q ); // avoid abort call item->cancel(); item->setComplete(); break; - } - default: Q_ASSERT( false ); + default: + Q_ASSERT( false ); } } } diff --git a/libkdepim/agentprogressmonitor.h b/libkdepim/agentprogressmonitor.h index 30403d2..da3b252 100644 --- a/libkdepim/agentprogressmonitor.h +++ b/libkdepim/agentprogressmonitor.h @@ -40,8 +40,7 @@ class AgentProgressMonitor : public QObject protected: // used by our friend ProgressManager - AgentProgressMonitor( const Akonadi::AgentInstance &agent, - ProgressItem *item ); + AgentProgressMonitor( const Akonadi::AgentInstance &agent, ProgressItem *item ); ~AgentProgressMonitor(); private: @@ -51,7 +50,6 @@ class AgentProgressMonitor : public QObject Q_PRIVATE_SLOT( d, void abort() ) Q_PRIVATE_SLOT( d, void instanceProgressChanged( const Akonadi::AgentInstance& ) ) Q_PRIVATE_SLOT( d, void instanceStatusChanged( const Akonadi::AgentInstance& ) ) - }; }
*** Bug 261487 has been marked as a duplicate of this bug. ***
Created attachment 62185 [details] New crash information added by DrKonqi kmail (2.1.96) on KDE Platform 4.6.95 (4.7 RC2) "release 2" using Qt 4.7.3 - What I was doing when the application crashed: Kmail was running in the background after I resumed from suspend. Since this is KDe 4.7 RC2, it seems this bug is not fixed. -- Backtrace (Reduced): #6 0x00007fa47f489417 in QCoreApplication::postEvent (receiver=0x44c7500, event=0x4d225f0, priority=0) at kernel/qcoreapplication.cpp:1173 #7 0x00007fa477e6a949 in KPIM::AgentProgressMonitor::Private::instanceStatusChanged (this=0x51549a0, instance=...) at /usr/src/debug/kdepim-4.6.95/libkdepim/agentprogressmonitor.cpp:87 #8 0x00007fa477e6aaba in KPIM::AgentProgressMonitor::qt_metacall (this=0x49f55f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff79b0ffb0) at /usr/src/debug/kdepim-4.6.95/build/libkdepim/agentprogressmonitor.moc:78 [...] #10 0x00007fa47a3b28b5 in Akonadi::AgentManager::instanceStatusChanged (this=<value optimized out>, _t1=<value optimized out>) at /usr/src/debug/kdepimlibs-4.6.95/build/akonadi/agentmanager.moc:177 #11 0x00007fa47a3e9121 in Akonadi::AgentManagerPrivate::agentInstanceStatusChanged (this=0x6d14c0, identifier=<value optimized out>, status=0, msg=...) at /usr/src/debug/kdepimlibs-4.6.95/akonadi/agentmanager.cpp:129
*** Bug 281425 has been marked as a duplicate of this bug. ***
*** Bug 281477 has been marked as a duplicate of this bug. ***