Version: unknown (using KDE 3.5.0, Gentoo) Compiler: gcc version 3.3.6 (Gentoo 3.3.6, ssp-3.3.6-1.0, pie-8.7.8) OS: Linux (i686) release 2.6.12-gentoo-r6 created a new dimap account minimized kmail did something else kmail crash Using host libthread_db library "/lib/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread 16384 (LWP 6319)] [KCrash handler] #5 0xb53da0b1 in kill () from /lib/libc.so.6 #6 0xb55e61e1 in pthread_kill () from /lib/libpthread.so.0 #7 0xb55e655b in raise () from /lib/libpthread.so.0 #8 0xb53d9e44 in raise () from /lib/libc.so.6 #9 0xb53db30d in abort () from /lib/libc.so.6 #10 0xb53d3388 in __assert_fail () from /lib/libc.so.6 #11 0xb7d27865 in KMAcctCachedImap::processNewMail(bool) (this=0x863da18) at kmacctcachedimap.cpp:218 #12 0xb7cc9dab in KMail::AccountManager::processNextCheck(bool) ( this=0x8375dd0, _newMail=false) at accountmanager.cpp:196 #13 0xb7cc97be in KMail::AccountManager::singleCheckMail(KMAccount*, bool) ( this=0x8375dd0, account=0x863da18) at accountmanager.cpp:125 #14 0xb7c5be70 in KMAccount::mailCheck() (this=0x863da18) at kmaccount.cpp:380 #15 0xb7c5a2e6 in KMAccount::qt_invoke(int, QUObject*) (this=0x863da18, _id=2, _o=0xbfd79a70) at kmaccount.moc:237 #16 0xb7d15cce in KMail::NetworkAccount::qt_invoke(int, QUObject*) (this=0x0, _id=0, _o=0x0) at networkaccount.moc:77 #17 0xb7d1df06 in KMail::ImapAccountBase::qt_invoke(int, QUObject*) ( this=0x863da18, _id=2, _o=0xbfd79a70) at imapaccountbase.moc:296 #18 0xb7d28e8b in KMAcctCachedImap::qt_invoke(int, QUObject*) (this=0x863da18, _id=2, _o=0xbfd79a70) at kmacctcachedimap.moc:97 #19 0xb5c076ac in QObject::activate_signal(QConnectionList*, QUObject*) ( this=0x8a6fd88, clist=0x8128df0, o=0xbfd79a70) at kernel/qobject.cpp:2355 #20 0xb5c07504 in QObject::activate_signal(int) (this=0x8a6fd88, signal=2) at kernel/qobject.cpp:2324 #21 0xb5fecc64 in QTimer::timeout() (this=0x8a6fd88) at .moc/debug-shared-mt/moc_qtimer.cpp:82 #22 0xb5c3309e in QTimer::event(QEvent*) (this=0x8a6fd88, e=0xbfd79d60) at kernel/qtimer.cpp:219 #23 0xb5b97235 in QApplication::internalNotify(QObject*, QEvent*) ( this=0xbfd7a0c0, receiver=0x8a6fd88, e=0xbfd79d60) at kernel/qapplication.cpp:2635 #24 0xb5b96478 in QApplication::notify(QObject*, QEvent*) (this=0xbfd7a0c0, receiver=0x8a6fd88, e=0xbfd79d60) at kernel/qapplication.cpp:2358 #25 0xb6405e88 in KApplication::notify(QObject*, QEvent*) (this=0xbfd7a0c0, receiver=0x8a6fd88, event=0xbfd79d60) at kapplication.cpp:550 #26 0xb7733e16 in QApplication::sendEvent(QObject*, QEvent*) (receiver=0x0, event=0x6) at qapplication.h:491 #27 0xb5b8275f in QEventLoop::activateTimers() (this=0x8130628) at kernel/qeventloop_unix.cpp:556 #28 0xb5b32d5d in QEventLoop::processEvents(unsigned) (this=0x8130628, flags=4) at kernel/qeventloop_x11.cpp:389 #29 0xb5bae7d9 in QEventLoop::enterLoop() (this=0x8130628) at kernel/qeventloop.cpp:198 #30 0xb5bae6f2 in QEventLoop::exec() (this=0x8130628) at kernel/qeventloop.cpp:145 #31 0xb5b973d7 in QApplication::exec() (this=0xbfd7a0c0) at kernel/qapplication.cpp:2758 #32 0x0804aa78 in main (argc=0, argv=0x0) at main.cpp:110
*** Bug 122928 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of 113329 ***
*** Bug 133596 has been marked as a duplicate of this bug. ***
Not a dupe of #133329.
*** Bug 130246 has been marked as a duplicate of this bug. ***
*** Bug 131957 has been marked as a duplicate of this bug. ***
*** Bug 132669 has been marked as a duplicate of this bug. ***
*** Bug 134239 has been marked as a duplicate of this bug. ***
I had one user experience this crash twice within first half hour of using new DIMAP account.. once when kmail was in background, and once when composing a new mail. Backtraces are below. Kmail version 1.9.4 (gentoo). BJ. Using host libthread_db library "/lib/tls/libthread_db.so.1". Core was generated by `kontact'. Program terminated with signal 11, Segmentation fault. #0 KMAcctCachedImap::processNewMail (this=0x8d9c230, folder=0x0, recurse=true) at qvaluelist.h:233 it = {node = 0x84049b8} nsToList = {<QValueList<QString>> = {sh = 0x8d97d10}, <No data fields>} otherNSToCheck = {<QValueList<QString>> = { sh = 0x85a1108}, <No data fields>} #1 0xb64c3751 in KMAcctCachedImap::processNewMail (this=0x8d9c230) at kmfolder.h:130 No locals. #2 0xb64593b5 in KMail::AccountManager::processNextCheck (this=0x84d74c0, _newMail=false) at accountmanager.cpp:197 tmp = {static null = { static null = <same as static member of an already seen type>, d = 0x806d070, static shared_null = 0x806d070}, d = 0x8df8af8, static shared_null = 0x806d070} #3 0xb64595a0 in KMail::AccountManager::singleCheckMail (this=0x84d74c0, account=0x8d9c230, interactive=false) at accountmanager.cpp:125 No locals. #4 0xb63e0c1a in KMAccount::mailCheck (this=0x8d9c230) at kmkernel.h:223 No locals. #5 0xb63dfe62 in KMAccount::qt_invoke (this=0x8d9c230, _id=2, _o=0xbf81aae0) at kmaccount.moc:237 No locals. #6 0xb64acee9 in KMail::NetworkAccount::qt_invoke (this=0x84049b8, _id=138430904, _o=0x84049b8) at networkaccount.moc:77 No locals. #7 0xb64b94e3 in KMail::ImapAccountBase::qt_invoke (this=0x8d9c230, _id=2, _o=0xbf81aae0) at imapaccountbase.moc:296 No locals. #8 0xb64c1a13 in KMAcctCachedImap::qt_invoke (this=0x8d9c230, _id=2, _o=0xbf81aae0) at kmacctcachedimap.moc:97 No locals. #9 0x4a4a218a in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #10 0x4a4a28b4 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #11 0x4a7e7da7 in QTimer::timeout () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #12 0x4a4c2ccb in QTimer::event () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #13 0x4a43ffd4 in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #14 0x4a440167 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #15 0xb6db6332 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4 No symbol table info available. #16 0xbf81b100 in ?? () No symbol table info available. #17 0x08d9c500 in ?? () No symbol table info available. #18 0xbf81ae90 in ?? () No symbol table info available. #19 0xb6f3dd50 in ?? () from /usr/kde/3.5/lib/libkdecore.so.4 No symbol table info available. #20 0x4a8f5de0 in vtable for QEvent () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #21 0x0000000b in ?? () No symbol table info available. #22 0x00000048 in ?? () No symbol table info available. #23 0xb6ded3ea in KSelectionWatcher::filterEvent () from /usr/kde/3.5/lib/libkdecore.so.4 No symbol table info available. #24 0x4a903288 in vtable for QPtrCollection () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #25 0x0842f720 in ?? () No symbol table info available. #26 0xbf81b000 in ?? () No symbol table info available. #27 0x00000010 in ?? () No symbol table info available. #28 0x49d15ff4 in ?? () from /lib/tls/libc.so.6 No symbol table info available. #29 0x49d17840 in __malloc_initialize_hook () from /lib/tls/libc.so.6 No symbol table info available. #30 0x085bfad8 in ?? () No symbol table info available. #31 0xbf81b100 in ?? () No symbol table info available. #32 0x49c67b73 in malloc () from /lib/tls/libc.so.6 No symbol table info available. and again... #0 KMAcctCachedImap::processNewMail (this=0x9144808, folder=0x0, recurse=true) at qvaluelist.h:233 it = {node = 0x91537f8} nsToList = {<QValueList<QString>> = {sh = 0x9971eb8}, <No data fields>} otherNSToCheck = {<QValueList<QString>> = { sh = 0x9248708}, <No data fields>} #1 0xb657c751 in KMAcctCachedImap::processNewMail (this=0x9144808) at kmfolder.h:130 No locals. #2 0xb65123b5 in KMail::AccountManager::processNextCheck (this=0x84d8cc0, _newMail=false) at accountmanager.cpp:197 tmp = {static null = { static null = <same as static member of an already seen type>, d = 0x806d070, static shared_null = 0x806d070}, d = 0x876fe60, static shared_null = 0x806d070} #3 0xb65125a0 in KMail::AccountManager::singleCheckMail (this=0x84d8cc0, account=0x9144808, interactive=false) at accountmanager.cpp:125 No locals. #4 0xb6499c1a in KMAccount::mailCheck (this=0x9144808) at kmkernel.h:223 No locals. #5 0xb6498e62 in KMAccount::qt_invoke (this=0x9144808, _id=2, _o=0xbfad4870) at kmaccount.moc:237 No locals. #6 0xb6565ee9 in KMail::NetworkAccount::qt_invoke (this=0x91537f8, _id=152385528, _o=0x91537f8) at networkaccount.moc:77 No locals. #7 0xb65724e3 in KMail::ImapAccountBase::qt_invoke (this=0x9144808, _id=2, _o=0xbfad4870) at imapaccountbase.moc:296 No locals. #8 0xb657aa13 in KMAcctCachedImap::qt_invoke (this=0x9144808, _id=2, _o=0xbfad4870) at kmacctcachedimap.moc:97 No locals. #9 0x4a4a218a in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #10 0x4a4a28b4 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #11 0x4a7e7da7 in QTimer::timeout () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #12 0x4a4c2ccb in QTimer::event () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #13 0x4a43ffd4 in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #14 0x4a440167 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available. #15 0xb6e6f332 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4 No symbol table info available. #16 0xbfad4e90 in ?? () No symbol table info available. #17 0x09144ad8 in ?? () No symbol table info available. #18 0xbfad4c20 in ?? () No symbol table info available. #19 0x4a4d25b4 in QWidget::createTLExtra () from /usr/qt/3/lib/libqt-mt.so.3 No symbol table info available.
BJ, Any chance you could test the newest kmail from the 3.5 branch?
And again - this time I just sent an email, and then pressed F5 from the inbox folder to force a check of mail. BJ. [KCrash handler] #9 KMAcctCachedImap::processNewMail (this=0x911f910, folder=0x0, recurse=true) at qvaluelist.h:233 #10 0xb65a832b in KMAcctCachedImap::processNewMail (this=0x911f910) at kmfolder.h:130 #11 0xb653cc51 in KMail::AccountManager::processNextCheck (this=0x84f6c48, _newMail=false) at accountmanager.cpp:197 #12 0xb653ce3c in KMail::AccountManager::singleCheckMail (this=0x84f6c48, account=0x911f910, interactive=false) at accountmanager.cpp:125 #13 0xb64c3cd6 in KMAccount::mailCheck (this=0x911f910) at kmaccount.cpp:384 #14 0xb64c2f16 in KMAccount::qt_invoke (this=0x911f910, _id=2, _o=0xbf89b6e0) at kmaccount.moc:237 #15 0xb6590d1b in KMail::NetworkAccount::qt_invoke (this=0x8af8238, _id=145719864, _o=0x8af8238) at networkaccount.moc:77 #16 0xb659dd6b in KMail::ImapAccountBase::qt_invoke (this=0x911f910, _id=2, _o=0xbf89b6e0) at imapaccountbase.moc:296 #17 0xb65a6495 in KMAcctCachedImap::qt_invoke (this=0x911f910, _id=2, _o=0xbf89b6e0) at kmacctcachedimap.moc:97 #18 0x4a4a218a in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #19 0x4a4a28b4 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #20 0x4a7e7da7 in QTimer::timeout () from /usr/qt/3/lib/libqt-mt.so.3 #21 0x4a4c2ccb in QTimer::event () from /usr/qt/3/lib/libqt-mt.so.3 #22 0x4a43ffd4 in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3 #23 0x4a440167 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3 #24 0xb6e39be4 in KApplication::notify (this=0xbf89bd20, receiver=0x8d27d28, event=0xbf89bab0) at kapplication.cpp:550 #25 0x4a433de9 in QEventLoop::activateTimers () from /usr/qt/3/lib/libqt-mt.so.3 #26 0x4a3ed126 in QEventLoop::processEvents () from /usr/qt/3/lib/libqt-mt.so.3 #27 0x4a455f82 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3 #28 0x4a455eda in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3 #29 0x4a43f2bb in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3 #30 0x08058e6c in main (argc=145719864, argv=0x8af8238) at main.cpp:161 #31 0x49c19eec in __libc_start_main () from /lib/tls/libc.so.6 #32 0x080585a1 in _start ()
*** Bug 139421 has been marked as a duplicate of this bug. ***
*** Bug 140213 has been marked as a duplicate of this bug. ***
Ok, so, this bug has been reported many times, originally over a year ago. Do you think we could get a "NEW" status instead of "UNCONFIRMED"?
*** This bug has been confirmed by popular vote. ***
SVN commit 631934 by dfaure: Found the reason why KMAcctCachedImap::processNewMail's assert below was hit assert( mFolder ); // George says "better to crash then lose mail" The configuration dialog creates temporary copies of the account when modifying one; but it doesn't delete that copy when closing with Cancel. What's more, the copied account started its own timer for interval-mail-checking, and when that timer fired, KMAcctCachedImap would crash due to mFolder=0. So: 1) delete things in the dtor to avoid the account memleak 2) don't start the mailcheck timer when simply setting the checkinterval of an account, only when the account is added to the AccountManager for real. BUG: 117935 M +23 -2 configuredialog.cpp M +2 -1 configuredialog_p.h M +6 -6 kmaccount.cpp --- branches/KDE/3.5/kdepim/kmail/configuredialog.cpp #631933:631934 @@ -1147,7 +1147,29 @@ this, SLOT(slotEditNotifications()) ); } +AccountsPageReceivingTab::~AccountsPageReceivingTab() +{ + // When hitting Cancel or closing the dialog with the window-manager-button, + // we have a number of things to clean up: + // The newly created accounts + QValueList< QGuardedPtr<KMAccount> >::Iterator it; + for (it = mNewAccounts.begin(); it != mNewAccounts.end(); ++it ) { + delete (*it); + } + mNewAccounts.clear(); + + // The modified accounts + QValueList<ModifiedAccountsType*>::Iterator j; + for ( j = mModifiedAccounts.begin() ; j != mModifiedAccounts.end() ; ++j ) { + delete (*j)->newAccount; + delete (*j); + } + mModifiedAccounts.clear(); + + +} + void AccountsPage::ReceivingTab::slotAccountSelected() { QListViewItem * item = mAccountList->selectedItem(); @@ -1398,8 +1420,7 @@ // Add accounts marked as new QValueList< QGuardedPtr<KMAccount> >::Iterator it; for (it = mNewAccounts.begin(); it != mNewAccounts.end(); ++it ) { - kmkernel->acctMgr()->add( *it ); - (*it)->installTimer(); + kmkernel->acctMgr()->add( *it ); // calls installTimer too } // Update accounts that have been modified --- branches/KDE/3.5/kdepim/kmail/configuredialog_p.h #631933:631934 @@ -349,6 +349,7 @@ Q_OBJECT public: AccountsPageReceivingTab( QWidget * parent=0, const char * name=0 ); + ~AccountsPageReceivingTab(); QString helpAnchor() const; void save(); @@ -384,7 +385,7 @@ QGuardedPtr< KMAccount > oldAccount; QGuardedPtr< KMAccount > newAccount; }; - // ### make this a qptrlist: + // ### make this value-based: QValueList< ModifiedAccountsType* > mModifiedAccounts; }; --- branches/KDE/3.5/kdepim/kmail/kmaccount.cpp #631933:631934 @@ -151,6 +151,11 @@ { setFolder(kmkernel->folderMgr()->findIdString(folderName), true); } + + if (mInterval == 0) + deinstallTimer(); + else + installTimer(); } @@ -278,15 +283,10 @@ void KMAccount::setCheckInterval(int aInterval) { if (aInterval <= 0) - { mInterval = 0; - deinstallTimer(); - } else - { mInterval = aInterval; - installTimer(); - } + // Don't call installTimer from here! See #117935. } //----------------------------------------------------------------------------
*** Bug 146442 has been marked as a duplicate of this bug. ***