Version: 1.8.50 (using KDE 3.4.89 (>= 20050615), compiled sources) Compiler: gcc version 3.4.4 20050314 (prerelease) (Debian 3.4.3-12) OS: Linux (i686) release 2.6.11.7 Oh, I got some new emails in INBOX. Click. Crash. Bug report. Using host libthread_db library "/lib/tls/libthread_db.so.1". `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread -1243511104 (LWP 3592)] [KCrash handler] #3 0x00000000 in ?? () #4 0xb551b455 in KMFolderImap::flagsToStatus (msg=0x91174d8, flags=32, newMsg=true) at /home/gj/kde-sources/kdepim/kmail/kmfolderimap.cpp:1367 #5 0xb5529824 in KMFolderImap::slotGetMessagesData (this=0x8535c80, job=0x8e35ec0, data=@0x91174d8) at /home/gj/kde-sources/kdepim/kmail/kmfolderimap.cpp:1499 #6 0xb552e080 in KMFolderImap::qt_invoke (this=0x8535c80, _id=139680896, _o=0x93b6638) at qucom_p.h:312 #7 0xb66f1e7b in QObject::activate_signal (this=0x93b6638, clist=0x8ee0c88, o=0xbfffece0) at kernel/qobject.cpp:2355 #8 0xb730ecd5 in KIO::TransferJob::data (this=0x93b6638, t0=0x93b6638, t1=@0xbffff120) at jobclasses.moc:972 #9 0xb730ed3d in KIO::TransferJob::slotData (this=0x93b6638, _data=@0xbffff120) at /home/gj/kde-sources/kdelibs/kio/kio/job.cpp:880 #10 0xb730ee13 in KIO::TransferJob::qt_invoke (this=0x93b6638, _id=-1073745632, _o=0xbfffee10) at qucom_p.h:312 #11 0xb66f1e7b in QObject::activate_signal (this=0x86005a8, clist=0x8933558, o=0xbfffee10) at kernel/qobject.cpp:2355 #12 0xb72f791f in KIO::SlaveInterface::data (this=0x86005a8, t0=@0xbffff120) at slaveinterface.moc:194 #13 0xb72fba75 in KIO::SlaveInterface::dispatch (this=0x86005a8, _cmd=100, rawdata=@0xbffff120) at /home/gj/kde-sources/kdelibs/kio/kio/slaveinterface.cpp:234 #14 0xb72f9e11 in KIO::SlaveInterface::dispatch (this=0x86005a8) at /home/gj/kde-sources/kdelibs/kio/kio/slaveinterface.cpp:173 #15 0xb72f3c97 in KIO::Slave::gotInput (this=0x86005a8) at /home/gj/kde-sources/kdelibs/kio/kio/slave.cpp:300 #16 0xb72f4ba9 in KIO::Slave::qt_invoke (this=0x86005a8, _id=4, _o=0xbffff2b0) at slave.moc:113 #17 0xb66f1e7b in QObject::activate_signal (this=0x85ffeb0, clist=0x8600810, o=0xbffff2b0) at kernel/qobject.cpp:2355 #18 0xb66f21d4 in QObject::activate_signal (this=0x85ffeb0, signal=2, param=20) at kernel/qobject.cpp:2448 #19 0xb6a57fcd in QSocketNotifier::activated (this=0x85ffeb0, t0=20) at .moc/debug-shared-mt/moc_qsocketnotifier.cpp:85 #20 0xb6712c98 in QSocketNotifier::event (this=0x85ffeb0, e=0xbffff5b0) at kernel/qsocketnotifier.cpp:258 #21 0xb668d4fd in QApplication::internalNotify (this=0xbffff830, receiver=0x85ffeb0, e=0xbffff5b0) at kernel/qapplication.cpp:2635 #22 0xb668c9c1 in QApplication::notify (this=0xbffff830, receiver=0x85ffeb0, e=0xbffff5b0) at kernel/qapplication.cpp:2358 #23 0xb6d160a3 in KApplication::notify (this=0xbffff830, receiver=0x85ffeb0, event=0xbffff5b0) at /home/gj/kde-sources/kdelibs/kdecore/kapplication.cpp:549 #24 0xb661e945 in QApplication::sendEvent (receiver=0x85ffeb0, event=0xbffff5b0) at qapplication.h:491 #25 0xb667b3f7 in QEventLoop::activateSocketNotifiers (this=0x80a4dc0) at kernel/qeventloop_unix.cpp:578 #26 0xb66325e4 in QEventLoop::processEvents (this=0x80a4dc0, flags=4) at kernel/qeventloop_x11.cpp:383 #27 0xb66a2588 in QEventLoop::enterLoop (this=0x80a4dc0) at kernel/qeventloop.cpp:198 #28 0xb66a24a6 in QEventLoop::exec (this=0x80a4dc0) at kernel/qeventloop.cpp:145 #29 0xb668d67d in QApplication::exec (this=0xbffff830) at kernel/qapplication.cpp:2758 #30 0x08059591 in main (argc=1, argv=0xbffffab4) at /home/gj/kde-sources/kdepim/kontact/src/main.cpp:177
On Saturday 25 June 2005 10:19, Grzegorz Jaskiewicz wrote: > Oh, I got some new emails in INBOX. Click. Crash. Bug report. > > Using host libthread_db library "/lib/tls/libthread_db.so.1". > `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. > [Thread debugging using libthread_db enabled] > [New Thread -1243511104 (LWP 3592)] > [KCrash handler] > #3 0x00000000 in ?? () > #4 0xb551b455 in KMFolderImap::flagsToStatus (msg=0x91174d8, flags=32, > newMsg=true) at /home/gj/kde-sources/kdepim/kmail/kmfolderimap.cpp:1367 > #5 0xb5529824 in KMFolderImap::slotGetMessagesData (this=0x8535c80, > job=0x8e35ec0, data= 0x91174d8) > at /home/gj/kde-sources/kdepim/kmail/kmfolderimap.cpp:1499 > #6 0xb552e080 in KMFolderImap::qt_invoke (this=0x8535c80, _id=139680896, > _o=0x93b6638) at qucom_p.h:312 > #7 0xb66f1e7b in QObject::activate_signal (this=0x93b6638, > clist=0x8ee0c88, o=0xbfffece0) at kernel/qobject.cpp:2355 Carsten, another indication that folder refcounting is broken?
SVN commit 429050 by burghard: Make getFolder handle it's own open/close sequence. That should fix current imap crashes. CCMAIL:108100@bugs.kde.org CCMAIL:107914@bugs.kde.org M +10 -8 kmfolderimap.cpp --- trunk/KDE/kdepim/kmail/kmfolderimap.cpp #429049:429050 @@ -984,6 +984,7 @@ { if (!mAccount) { emit folderComplete(this, false); + close(); return; } KURL url = mAccount->getUrl(); @@ -999,6 +1000,7 @@ kdDebug(5006) << "KMFolderImap::checkValidity - got no connection" << endl; emit folderComplete(this, FALSE); mContentState = imapNoInformation; + close(); return; } else if ( connectionState == ImapAccountBase::Connecting ) { // We'll wait for the connectionResult signal from the account. If it @@ -1011,6 +1013,7 @@ // Only check once at a time. if (mCheckingValidity) { kdDebug(5006) << "KMFolderImap::checkValidity - already checking" << endl; + close(); return; } // otherwise we already are inside a mailcheck @@ -1074,6 +1077,7 @@ } mContentState = imapNoInformation; emit folderComplete(this, FALSE); + close(); } else { QCString cstr((*it).data.data(), (*it).data.size() + 1); int a = cstr.find("X-uidValidity: "); @@ -1151,6 +1155,7 @@ emit folderComplete(this, true); return; } + open(); mContentState = imapInProgress; if (force) { // force an update @@ -1168,6 +1173,7 @@ { mContentState = imapNoInformation; emit folderComplete(this, FALSE); + close(); return; } quiet(true); @@ -1218,6 +1224,7 @@ mContentState = imapNoInformation; emit folderComplete(this, FALSE); mAccount->removeJob(it); + close(); return; } mCheckFlags = FALSE; @@ -1274,6 +1281,7 @@ mContentState = imapFinished; emit folderComplete(this, TRUE); mAccount->removeJob(it); + close(); return; } if ( mMailCheckProgressItem ) @@ -1291,14 +1299,6 @@ else sets = makeSets( (*it).items ); mAccount->removeJob(it); // don't use *it below - // make sure we have a connection - if ( mAccount->makeConnection() != ImapAccountBase::Connected ) - { - quiet(false); - emit folderComplete(this, FALSE); - return; - } - // Now kick off the getting of envelopes for the new mails in the folder for (QStringList::Iterator i = sets.begin(); i != sets.end(); ++i) { @@ -1580,6 +1580,7 @@ mContentState = imapNoInformation; quiet( false ); emit folderComplete(this, false); + close(); } else { @@ -1588,6 +1589,7 @@ mContentState = imapFinished; quiet(false); emit folderComplete(this, true); + close(); } mAccount->removeJob(it); }
fixing database
*** This bug has been marked as a duplicate of 107914 ***