Bug 90467 - dumpDeadLetters() crash
Summary: dumpDeadLetters() crash
Status: RESOLVED FIXED
Alias: None
Product: kmail
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash with 30 votes (vote)
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
: 88093 90157 90667 92660 92709 93530 98824 103129 109256 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-09-29 14:33 UTC by tobias
Modified: 2007-09-14 12:17 UTC (History)
9 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description tobias 2004-09-29 14:33:16 UTC
Version:            (using KDE KDE 3.3.0)
Installed from:    Compiled From Sources
Compiler:          gcc 3.3.3 
OS:                Linux

Sometimes Kmail crashes when I close the app.

I dont know how to reproduce the crash

here the backstrace:

[New Thread 16384 (LWP 17166)]

[KCrash handler]
#5  0x401ffa70 in QValueVectorPrivate<KMMessage*>::QValueVectorPrivate(QValueVectorPrivate<KMMessage*> const&) () from /opt/kde-3.3/lib/libkmailprivate.so.0
#6  0x401ff443 in QValueVector<KMMessage*>::detachInternal() ()
   from /opt/kde-3.3/lib/libkmailprivate.so.0
#7  0x401e66e1 in KMComposeWin::deadLetter() ()
   from /opt/kde-3.3/lib/libkmailprivate.so.0
#8  0x402d2fe3 in KMKernel::dumpDeadLetters() ()
   from /opt/kde-3.3/lib/libkmailprivate.so.0
#9  0x402d4ee9 in KMKernel::qt_invoke(int, QUObject*) ()
   from /opt/kde-3.3/lib/libkmailprivate.so.0
#10 0x419c45ca in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /opt/kde-3.3/lib/libqt-mt.so.3
#11 0x419c440c in QObject::activate_signal(int) ()
   from /opt/kde-3.3/lib/libqt-mt.so.3
#12 0x41cc3285 in QTimer::timeout() () from /opt/kde-3.3/lib/libqt-mt.so.3
#13 0x419e2d49 in QTimer::event(QEvent*) () from /opt/kde-3.3/lib/libqt-mt.so.3
#14 0x4196d28c in QApplication::internalNotify(QObject*, QEvent*) ()
   from /opt/kde-3.3/lib/libqt-mt.so.3
#15 0x4196c8ba in QApplication::notify(QObject*, QEvent*) ()
   from /opt/kde-3.3/lib/libqt-mt.so.3
#16 0x415163ee in KApplication::notify(QObject*, QEvent*) ()
   from /opt/kde-3.3/lib/libkdecore.so.4
#17 0x4195d646 in QEventLoop::activateTimers() ()
   from /opt/kde-3.3/lib/libqt-mt.so.3
#18 0x4191b477 in QEventLoop::processEvents(unsigned) ()
   from /opt/kde-3.3/lib/libqt-mt.so.3
#19 0x4197ddcf in QEventLoop::enterLoop() ()
   from /opt/kde-3.3/lib/libqt-mt.so.3
#20 0x4197dc84 in QEventLoop::exec() () from /opt/kde-3.3/lib/libqt-mt.so.3
#21 0x4196d4b0 in QApplication::exec() () from /opt/kde-3.3/lib/libqt-mt.so.3
#22 0x0804a6f0 in main ()
Comment 1 Till Adam 2004-10-23 22:17:26 UTC
*** Bug 90667 has been marked as a duplicate of this bug. ***
Comment 2 Till Adam 2004-12-14 00:14:36 UTC
*** Bug 93530 has been marked as a duplicate of this bug. ***
Comment 3 Till Adam 2004-12-14 00:15:41 UTC
*** Bug 92709 has been marked as a duplicate of this bug. ***
Comment 4 Till Adam 2004-12-14 00:17:42 UTC
*** Bug 92660 has been marked as a duplicate of this bug. ***
Comment 5 Till Adam 2004-12-14 08:42:40 UTC
*** Bug 88093 has been marked as a duplicate of this bug. ***
Comment 6 Till Adam 2004-12-14 08:43:32 UTC
Adjusting title to make it easier to find.
Comment 7 Till Adam 2004-12-14 08:56:19 UTC
*** Bug 90157 has been marked as a duplicate of this bug. ***
Comment 8 m.wege 2006-03-19 23:12:07 UTC
I also have a crash on shutdown of the computer of Kmail. I do not know if it is for the same reason, here is the backtrace:
Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1249015264 (LWP 2475)]
[New Thread -1280746576 (LWP 2673)]
[New Thread -1272357968 (LWP 2672)]
[New Thread -1263969360 (LWP 2671)]
[New Thread -1255580752 (LWP 2670)]
[KCrash handler]
#5  KMComposeWin::autoSaveMessage (this=0x85d5360)
    at /tmp/buildd/kdepim-3.5.1/build-tree/kdepim-3.5.1/kmail/kmcomposewin.cpp:696
#6  0xb7c95ded in KMComposeWin::qt_invoke (this=0x85d5360, _id=143, 
    _o=0xbff99f8c) at kmcomposewin.moc:461
#7  0xb70e47ff in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#8  0xb70e5290 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#9  0xb7474526 in QTimer::timeout () from /usr/lib/libqt-mt.so.3
#10 0xb7109741 in QTimer::event () from /usr/lib/libqt-mt.so.3
#11 0xb707b122 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#12 0xb707b314 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#13 0xb777efbe in KApplication::notify (this=0xbff9a578, receiver=0x86a4de0, 
    event=0xbff9a2d8) at kapplication.cpp:550
#14 0xb700c861 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#15 0xb706cbad in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#16 0xb7020566 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#17 0xb7093b01 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#18 0xb7093a26 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#19 0xb7079c35 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#20 0x0804a098 in main (argc=0, argv=0x0)
    at /tmp/buildd/kdepim-3.5.1/build-tree/kdepim-3.5.1/kmail/main.cpp:110
#21 0xb7844001 in __libc_start_main () from /lib/tls/libc.so.6
#22 0x08049e11 in _start () at ../sysdeps/i386/elf/start.S:119
 
Comment 9 Andreas Kling 2006-07-31 22:18:24 UTC
*** Bug 103129 has been marked as a duplicate of this bug. ***
Comment 10 Andreas Kling 2006-07-31 22:19:10 UTC
*** Bug 109256 has been marked as a duplicate of this bug. ***
Comment 11 Andreas Kling 2006-07-31 22:19:44 UTC
*** Bug 98824 has been marked as a duplicate of this bug. ***
Comment 12 Bruno Virlet 2007-08-13 15:06:14 UTC
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 );