Summary: | KMail crashes with SIGSEGV after closing many composer windows | ||
---|---|---|---|
Product: | [Applications] kmail | Reporter: | Tristan Miller <psychonaut> |
Component: | composer | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aliakc, bugs2, daniel.dumitrache, lee |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Screenshot showing behaviour leading to described malfuction |
Description
Tristan Miller
2005-06-29 11:15:22 UTC
Created attachment 11622 [details]
Screenshot showing behaviour leading to described malfuction
20 Votes for a ferret-proof KMail. Yeah, 20 bucks from me too dood :) Ferret bugs kinda kick arse :) - oGALAXYo *** This bug has been confirmed by popular vote. *** Similar trace in Debian sid with kmail from 3.5.1-1 when closing. I didn't see the ferret. Probably stole the pointer when I was away!? Using host libthread_db library "/lib/tls/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1249555936 (LWP 4779)] [New Thread -1279083600 (LWP 4783)] [New Thread -1270694992 (LWP 4782)] [New Thread -1262306384 (LWP 4781)] [New Thread -1253917776 (LWP 4780)] [KCrash handler] #5 KMMessage::asDwString (this=0x0) at /tmp/buildd/kdepim-3.5.1/build-tree/kdepim-3.5.1/kmail/kmmessage.cpp:284 #6 0xb7b54178 in KMMessage::asString (this=0x0) at /tmp/buildd/kdepim-3.5.1/build-tree/kdepim-3.5.1/kmail/kmmessage.cpp:305 #7 0xb7bf42ff in KMComposeWin::autoSaveMessage (this=0x8787598) at /tmp/buildd/kdepim-3.5.1/build-tree/kdepim-3.5.1/kmail/kmcomposewin.cpp:708 #8 0xb7c12ded in KMComposeWin::qt_invoke (this=0x8787598, _id=143, _o=0xbfb172ec) at kmcomposewin.moc:461 #9 0xb70627ff in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #10 0xb7063290 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #11 0xb73f2526 in QTimer::timeout () from /usr/lib/libqt-mt.so.3 #12 0xb7087741 in QTimer::event () from /usr/lib/libqt-mt.so.3 #13 0xb6ff9122 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #14 0xb6ff9314 in QApplication::notify () from /usr/lib/libqt-mt.so.3 #15 0xb76fcfde in KApplication::notify (this=0xbfb178d8, receiver=0x87a5130, event=0xbfb17638) at kapplication.cpp:550 #16 0xb6f8a861 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3 #17 0xb6feabad in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3 #18 0xb6f9e566 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 #19 0xb7011b01 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 #20 0xb7011a26 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3 #21 0xb6ff7c35 in QApplication::exec () from /usr/lib/libqt-mt.so.3 #22 0x0804a098 in main (argc=0, argv=0x0) at /tmp/buildd/kdepim-3.5.1/build-tree/kdepim-3.5.1/kmail/main.cpp:110 #23 0xb77c1eb0 in __libc_start_main () from /lib/tls/libc.so.6 #24 0x08049e11 in _start () at ../sysdeps/i386/elf/start.S:119 *** Bug 119632 has been marked as a duplicate of this bug. *** *** Bug 125464 has been marked as a duplicate of this bug. *** *** Bug 105119 has been marked as a duplicate of this bug. *** *** Bug 143003 has been marked as a duplicate of this bug. *** My yearly update, now it was here again. Debian experimental with kmail 3.5.6.dfsg.1-1 when closing. Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1249273632 (LWP 3632)] [New Thread -1281483856 (LWP 3636)] [New Thread -1273091152 (LWP 3635)] [New Thread -1264698448 (LWP 3634)] [New Thread -1256305744 (LWP 3633)] [KCrash handler] #9 0xb7dfc138 in KMComposeWin::autoSaveMessage (this=0x9084c68) at /tmp/buildd/kdepim-3.5.6.dfsg.1/./kmail/kmcomposewin.cpp:693 #10 0xb7ecbdaa in KMComposeWin::qt_invoke (this=0x9084c68, _id=146, _o=0xbfd44fec) at ./kmcomposewin.moc:473 #11 0xb70e5d4f in QObject::activate_signal (this=0x867e390, clist=0x8810658, o=0xbfd44fec) at kernel/qobject.cpp:2356 #12 0xb70e67e0 in QObject::activate_signal (this=0x867e390, signal=2) at kernel/qobject.cpp:2325 #13 0xb7470e5e in QTimer::timeout (this=0x867e390) at .moc/debug-shared-mt/moc_qtimer.cpp:82 #14 0xb710d603 in QTimer::event (this=0x867e390, e=0xbfd45338) at kernel/qtimer.cpp:219 #15 0xb707dc26 in QApplication::internalNotify (this=0xbfd455c0, receiver=0x867e390, e=0xbfd45338) at kernel/qapplication.cpp:2635 #16 0xb707fa43 in QApplication::notify (this=0xbfd455c0, receiver=0x867e390, e=0xbfd45338) at kernel/qapplication.cpp:2358 #17 0xb7785c3e in KApplication::notify (this=0xbfd455c0, receiver=0x867e390, event=0xbfd45338) at /tmp/buildd/kdelibs-3.5.6.r1.dfsg.1/./kdecore/kapplication.cpp:550 #18 0xb7011421 in QApplication::sendEvent (receiver=0x867e390, event=0xbfd45338) at ../include/qapplication.h:520 #19 0xb7070623 in QEventLoop::activateTimers (this=0x8098b50) at kernel/qeventloop_unix.cpp:556 #20 0xb702576f in QEventLoop::processEvents (this=0x8098b50, flags=4) at kernel/qeventloop_x11.cpp:389 #21 0xb7098179 in QEventLoop::enterLoop (this=0x8098b50) at kernel/qeventloop.cpp:198 #22 0xb7097f9a in QEventLoop::exec (this=0x8098b50) at kernel/qeventloop.cpp:145 #23 0xb707f7bf in QApplication::exec (this=0xbfd455c0) at kernel/qapplication.cpp:2758 #24 0x0804a094 in main (argc=1, argv=0x0) at /tmp/buildd/kdepim-3.5.6.dfsg.1/./kmail/main.cpp:110 #25 0xb783cea8 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6 #26 0x08049e11 in _start () at ../sysdeps/i386/elf/start.S:119 These crashes are are all related to autoSaveMessage, but do not seem exactly the same: bug 143776, bug 136365, bug 108312. *** Bug 148700 has been marked as a duplicate of this bug. *** SVN commit 699554 by bvirlet: Fixes event loop bug. Credit goes to Dirk. BUG: 108312 BUG: 148700 BUG: 143003 BUG: 136365 BUG: 90467 Most probably closed: BUG: 143776 BUG: 147016 BUG: 137279 BUG: 136413 https://bugzilla.novell.com/show_bug.cgi?id=226462 M +10 -17 kmcomposewin.cpp M +1 -1 kmcomposewin.h --- branches/KDE/3.5/kdepim/kmail/kmcomposewin.cpp #699553:699554 @@ -709,16 +709,22 @@ if ( mAutoSaveTimer ) mAutoSaveTimer->stop(); + connect( this, SIGNAL( applyChangesDone( bool ) ), - this, SLOT( slotContinueAutoSave( bool ) ) ); + this, SLOT( slotContinueAutoSave() ) ); // This method is called when KMail crashed, so don't try signing/encryption // and don't disable controls because it is also called from a timer and // then the disabling is distracting. applyChanges( true, true ); // Don't continue before the applyChanges is done! - qApp->enter_loop(); +} +void KMComposeWin::slotContinueAutoSave() +{ + disconnect( this, SIGNAL( applyChangesDone( bool ) ), + this, SLOT( slotContinueAutoSave( bool ) ) ); + // Ok, it's done now - continue dead letter saving if ( mComposedMessages.isEmpty() ) { kdDebug(5006) << "Composing the message failed." << endl; @@ -761,16 +767,9 @@ } if ( autoSaveInterval() > 0 ) - mAutoSaveTimer->start( autoSaveInterval() ); + updateAutoSave(); } -void KMComposeWin::slotContinueAutoSave( bool ) -{ - disconnect( this, SIGNAL( applyChangesDone( bool ) ), - this, SLOT( slotContinueAutoSave( bool ) ) ); - qApp->exit_loop(); -} - //----------------------------------------------------------------------------- void KMComposeWin::slotView(void) { @@ -2193,18 +2192,12 @@ { kdDebug(5006) << "entering KMComposeWin::applyChanges" << endl; - if(!mMsg) { + if(!mMsg || mComposer) { kdDebug(5006) << "KMComposeWin::applyChanges() : mMsg == 0!\n" << endl; emit applyChangesDone( false ); return; } - if( mComposer ) { - kdDebug(5006) << "KMComposeWin::applyChanges() : applyChanges called twice" - << endl; - return; - } - // Make new job and execute it mComposer = new MessageComposer( this ); connect( mComposer, SIGNAL( done( bool ) ), --- branches/KDE/3.5/kdepim/kmail/kmcomposewin.h #699553:699554 @@ -780,7 +780,7 @@ void slotContinueDoSend( bool ); void slotContinuePrint( bool ); - void slotContinueAutoSave( bool ); + void slotContinueAutoSave(); void slotEncryptChiasmusToggled( bool ); Just in case this is the last words from valgrind when this crash happenned: ==00:04:36:17.433 20992== ==00:04:36:17.433 20992== Conditional jump or move depends on uninitialised value(s) ==00:04:36:17.433 20992== at 0x4025517: strlen (mc_replace_strmem.c:246) ==00:04:36:17.449 20992== by 0x4D8B130: qstrlen(char const*) (qcstring.h:58) ==00:04:36:17.457 20992== by 0x4D8B16A: QCString::length() const (qcstring.h:261) ==00:04:36:17.481 20992== by 0x51A5DC0: QTextCodec::toUnicode(QCString const&, int) const (qtextcodec.cpp:1092) ==00:04:36:17.500 20992== by 0x7279EF4: QXIMInputContext::x11FilterEvent(QWidget*, _XEvent*) (qximinputcontext_x11.cpp:684) ==00:04:36:17.515 20992== by 0x714353D: QMultiInputContext::x11FilterEvent(QWidget*, _XEvent*) (qmultiinputcontext.cpp:96) ==00:04:36:17.516 20992== by 0x4D850A7: QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3308) ==00:04:36:17.516 20992== by 0x4D9C67B: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:192) ==00:04:36:17.516 20992== by 0x4E126E3: QEventLoop::enterLoop() (qeventloop.cpp:198) ==00:04:36:17.520 20992== by 0x4E123E1: QEventLoop::exec() (qeventloop.cpp:145) ==00:04:36:17.520 20992== by 0x4DF8F12: QApplication::exec() (qapplication.cpp:2758) ==00:04:36:17.520 20992== by 0x8059988: main (main.cpp:163) ==00:04:37:33.322 20992== ==00:04:37:33.322 20992== Invalid read of size 1 ==00:04:37:33.381 20992== at 0x8D3EB5A: KMMessage::asDwString() const (kmmessage.cpp:285) ==00:04:37:33.395 20992== by 0x8E01366: KMComposeWin::autoSaveMessage() (kmcomposewin.cpp:739) ==00:04:37:33.403 20992== by 0x8E07B07: KMComposeWin::qt_invoke(int, QUObject*) (kmcomposewin.moc:508) ==00:04:37:33.403 20992== by 0x4E62B0F: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2356) ==00:04:37:33.403 20992== by 0x4E635F4: QObject::activate_signal(int) (qobject.cpp:2325) ==00:04:37:33.420 20992== by 0x51F4B93: QTimer::timeout() (moc_qtimer.cpp:82) ==00:04:37:33.420 20992== by 0x4E8A281: QTimer::event(QEvent*) (qtimer.cpp:219) ==00:04:37:33.421 20992== by 0x4DF7369: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2635) ==00:04:37:33.421 20992== by 0x4DF9192: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2358) ==00:04:37:33.421 20992== by 0x4A6FFF1: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:550) ==00:04:37:33.421 20992== by 0x4D886C8: QApplication::sendEvent(QObject*, QEvent*) (qapplication.h:520) ==00:04:37:33.445 20992== by 0x4DEA1B0: QEventLoop::activateTimers() (qeventloop_unix.cpp:556) ==00:04:37:33.445 20992== Address 0x30 is not stack'd, malloc'd or (recently) free'd ==00:04:41:28.538 20992== ==00:04:41:28.538 20992== FILE DESCRIPTORS: 4 open at exit. ==00:04:41:28.538 20992== Open AF_UNIX socket 3: <unknown> ==00:04:41:28.632 20992== at 0x483D682: socket (in /usr/lib/debug/libc-2.6.1.so) ==00:04:41:28.669 20992== by 0x499BB16: KCrash::defaultCrashHandler(int) (kcrash.cpp:229) ==00:04:41:28.682 20992== by 0x4793867: (within /usr/lib/debug/libc-2.6.1.so) ==00:04:41:28.727 20992== by 0x8E01366: KMComposeWin::autoSaveMessage() (kmcomposewin.cpp:739) ==00:04:41:28.733 20992== by 0x8E07B07: KMComposeWin::qt_invoke(int, QUObject*) (kmcomposewin.moc:508) ==00:04:41:28.790 20992== by 0x4E62B0F: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2356) ==00:04:41:28.791 20992== by 0x4E635F4: QObject::activate_signal(int) (qobject.cpp:2325) ==00:04:41:28.791 20992== by 0x51F4B93: QTimer::timeout() (moc_qtimer.cpp:82) ==00:04:41:28.808 20992== by 0x4E8A281: QTimer::event(QEvent*) (qtimer.cpp:219) ==00:04:41:28.821 20992== by 0x4DF7369: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2635) ==00:04:41:28.821 20992== by 0x4DF9192: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2358) ==00:04:41:28.833 20992== by 0x4A6FFF1: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:550) ==00:04:41:28.834 20992== *** Bug 152430 has been marked as a duplicate of this bug. *** |