Bug 137279

Summary: crash while composing a new message
Product: [Unmaintained] kmail Reporter: konold
Component: composerAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description konold 2006-11-13 11:51:04 UTC
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 ()
Comment 1 Philip Rodrigues 2006-11-13 22:14:48 UTC
Is it reproducible, or a one-off?
Comment 2 konold 2006-11-14 00:08:52 UTC
I don't know how to reproduce.
Comment 3 Bruno Virlet 2007-08-13 15:06:05 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 );