Version: (using KDE KDE 3.5.5) Installed from: Ubuntu Packages OS: Linux Using KDE 3.5.5 on Kubuntu. System configuration startup check disabled. Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1248844112 (LWP 5538)] [New Thread -1276290144 (LWP 6484)] [New Thread -1267897440 (LWP 6483)] [New Thread -1259504736 (LWP 6482)] [New Thread -1251112032 (LWP 6481)] [KCrash handler] #6 0xb71f9853 in QListViewItem::depth () from /usr/lib/libqt-mt.so.3 #7 0xb71f9868 in QListViewItem::depth () from /usr/lib/libqt-mt.so.3 #8 0xb72050a4 in QListView::contentsMousePressEventEx () from /usr/lib/libqt-mt.so.3 #9 0xb72053a8 in QListView::contentsMousePressEvent () from /usr/lib/libqt-mt.so.3 #10 0xb5eb61dc in KListView::contentsMousePressEvent (this=0x8884250, e=0xbfecdccc) at /build/buildd/kdelibs-3.5.5/./kdeui/klistview.cpp:805 #11 0xb7c79ab9 in KMHeaders::contentsMousePressEvent (this=0x8884250, e=0xbfecdccc) at /build/buildd/kdepim-3.5.5/./kmail/kmheaders.cpp:2181 #12 0xb723c0b9 in QScrollView::viewportMousePressEvent () from /usr/lib/libqt-mt.so.3 #13 0xb723d52c in QScrollView::eventFilter () from /usr/lib/libqt-mt.so.3 #14 0xb7205816 in QListView::eventFilter () from /usr/lib/libqt-mt.so.3 #15 0xb7c7b189 in KMHeaders::eventFilter (this=0x8884250, o=0x8884eb0, e=0xbfece2a0) at /build/buildd/kdepim-3.5.5/./kmail/kmheaders.cpp:241 #16 0xb7105f04 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3 #17 0xb7105f82 in QObject::event () from /usr/lib/libqt-mt.so.3 #18 0xb713d65b in QWidget::event () from /usr/lib/libqt-mt.so.3 #19 0xb709db88 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #20 0xb709fd46 in QApplication::notify () from /usr/lib/libqt-mt.so.3 #21 0xb77c6db2 in KApplication::notify (this=0xbfecefe4, receiver=0x8884eb0, event=0xbfece2a0) at /build/buildd/kdelibs-3.5.5/./kdecore/kapplication.cpp:550 #22 0xb70303fd in QApplication::sendSpontaneousEvent () from /usr/lib/libqt-mt.so.3 #23 0xb702f062 in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3 #24 0xb702d14c in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3 #25 0xb7044320 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 #26 0xb70b825e in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 #27 0xb709f6af in QApplication::enter_loop () from /usr/lib/libqt-mt.so.3 #28 0xb7cb0a50 in KMComposeWin::autoSaveMessage (this=0x8a7cb10) at /build/buildd/kdepim-3.5.5/./kmail/kmcomposewin.cpp:692 #29 0xb7cb2e2e in KMComposeWin::qt_invoke (this=0x8a7cb10, _id=144, _o=0xbfece92c) at ./kmcomposewin.moc:467 #30 0xb7106957 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #31 0xb71073fc in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #32 0xb749500a in QTimer::timeout () from /usr/lib/libqt-mt.so.3 #33 0xb712e662 in QTimer::event () from /usr/lib/libqt-mt.so.3 #34 0xb709db88 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #35 0xb709f9b7 in QApplication::notify () from /usr/lib/libqt-mt.so.3 #36 0xb77c6db2 in KApplication::notify (this=0xbfecefe4, receiver=0x8b040d8, event=0xbfecec58) at /build/buildd/kdelibs-3.5.5/./kdecore/kapplication.cpp:550 #37 0xb7030389 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3 #38 0xb70905d3 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3 #39 0xb7044ec5 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 #40 0xb70b825e in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 #41 0xb70b806e in QEventLoop::exec () from /usr/lib/libqt-mt.so.3 #42 0xb709f731 in QApplication::exec () from /usr/lib/libqt-mt.so.3 #43 0x0804a0fe in main (argc=0, argv=0x88862c0) at /build/buildd/kdepim-3.5.5/./kmail/main.cpp:110 #44 0xb78648cc in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6 #45 0x08049e61 in _start ()
Is it reproducible, or a one-off?
I don't know how to reproduce.
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 );