Bug 294612

Summary: KMail2 crashes when cancelling OpenGPG passphrase dialogue
Product: [Applications] kontact Reporter: itsef-admin
Component: generalAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: itsef-admin
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Simple, generic encrypted testmail to demonstrate the issue
New crash information added by DrKonqi

Description itsef-admin 2012-02-22 13:02:47 UTC
Application: kontact (4.7.3)
KDE Platform Version: 4.7.4 (4.7.4)
Qt Version: 4.7.4
Operating System: Linux 3.0.0-16-generic i686
Distribution: Ubuntu 11.10

-- Information about the crash:
- What I was doing when the application crashed:
1) Select an encrypted mail in the message list
2) OpeGPG passphrase dialogue pops up
3) Leave dialogue open and click on another mail
4) Now, cancel passphrase dialogue
=> CRASH

The crash can be reproduced every time.

-- Backtrace:
Application: Kontact (kontact), signal: Segmentation fault
[Current thread is 1 (Thread 0xb7770730 (LWP 5940))]

Thread 4 (Thread 0xb6ad9b70 (LWP 5941)):
#0  0x00b27416 in __kernel_vsyscall ()
#1  0x03c7ba5c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0x08939cfc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0x05382883 in ?? () from /usr/lib/i386-linux-gnu/libQtWebKit.so.4
#4  0x0538299f in ?? () from /usr/lib/i386-linux-gnu/libQtWebKit.so.4
#5  0x03c77d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#6  0x0892c0ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 3 (Thread 0xb61b0b70 (LWP 5942)):
#0  0x00ed5d10 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0x00bea7d5 in do_gettime (frac=0xb61b0090, sec=0xb61b0088) at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0x00cbd4b6 in QTimerInfoList::updateCurrentTime (this=0xb5801abc) at kernel/qeventdispatcher_unix.cpp:339
#4  0x00cbd086 in timerSourceCheckHelper (src=0xb5801a88) at kernel/qeventdispatcher_glib.cpp:150
#5  timerSourceCheckHelper (src=0xb5801a88) at kernel/qeventdispatcher_glib.cpp:144
#6  0x06f68f24 in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0
#7  0x06f698f0 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0x06f69c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0x00cbcb37 in QEventDispatcherGlib::processEvents (this=0xb5800468, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#10 0x00c8d1dd in QEventLoop::processEvents (this=0xb61b02c0, flags=...) at kernel/qeventloop.cpp:149
#11 0x00c8d421 in QEventLoop::exec (this=0xb61b02c0, flags=...) at kernel/qeventloop.cpp:201
#12 0x00b9090b in QThread::exec (this=0x95b2d40) at thread/qthread.cpp:498
#13 0x00b909fb in QThread::run (this=0x95b2d40) at thread/qthread.cpp:565
#14 0x00b937b3 in QThreadPrivate::start (arg=0x95b2d40) at thread/qthread_unix.cpp:331
#15 0x03c77d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#16 0x0892c0ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 2 (Thread 0xb283db70 (LWP 5957)):
#0  0x00b27416 in __kernel_vsyscall ()
#1  0x0891d40e in poll () from /lib/i386-linux-gnu/libc.so.6
#2  0x06f7834b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0x06f69896 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0x06f69c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0x00cbcb37 in QEventDispatcherGlib::processEvents (this=0x9c20e80, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#6  0x00c8d1dd in QEventLoop::processEvents (this=0xb283d290, flags=...) at kernel/qeventloop.cpp:149
#7  0x00c8d421 in QEventLoop::exec (this=0xb283d290, flags=...) at kernel/qeventloop.cpp:201
#8  0x00b9090b in QThread::exec (this=0x9c354e0) at thread/qthread.cpp:498
#9  0x00c6de2d in QInotifyFileSystemWatcherEngine::run (this=0x9c354e0) at io/qfilesystemwatcher_inotify.cpp:248
#10 0x00b937b3 in QThreadPrivate::start (arg=0x9c354e0) at thread/qthread_unix.cpp:331
#11 0x03c77d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#12 0x0892c0ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 1 (Thread 0xb7770730 (LWP 5940)):
[KCrash Handler]
#7  0x08dcd887 in KMime::Content::parent (this=0x9f51080) at ../../kmime/kmime_content.cpp:927
#8  0x031d1120 in MessageCore::NodeHelper::nextSibling (node=0x9f51080) at ../../messagecore/nodehelper.cpp:32
#9  0x03d680c5 in MessageViewer::ObjectTreeParser::parseObjectTreeInternal (this=0xbfe937c0, node=0x9f51080) at ../../messageviewer/objecttreeparser.cpp:278
#10 0x03d691a6 in MessageViewer::ObjectTreeParser::parseObjectTree (this=0xbfe937c0, node=0x9f51080) at ../../messageviewer/objecttreeparser.cpp:248
#11 0x03da14f2 in MessageViewer::ViewerPrivate::parseContent (this=0x99d5b10, content=0x9f51080) at ../../messageviewer/viewer_p.cpp:857
#12 0x03da41c6 in MessageViewer::ViewerPrivate::displayMessage (this=0x99d5b10) at ../../messageviewer/viewer_p.cpp:729
#13 0x03da4ac0 in MessageViewer::ViewerPrivate::updateReaderWin (this=0x99d5b10) at ../../messageviewer/viewer_p.cpp:1948
#14 0x03da85fd in MessageViewer::ViewerPrivate::qt_metacall (this=0x99d5b10, _c=QMetaObject::InvokeMetaMethod, _id=27, _a=0xbfe93a74) at ./viewer_p.moc:220
#15 0x00c94b7d in metacall (argv=0xbfe93a74, idx=31, cl=QMetaObject::InvokeMetaMethod, object=0x99d5b10) at kernel/qmetaobject.cpp:237
#16 QMetaObject::metacall (object=0x99d5b10, cl=QMetaObject::InvokeMetaMethod, idx=31, argv=0xbfe93a74) at kernel/qmetaobject.cpp:232
#17 0x00ca3a6a in QMetaObject::activate (sender=0x99d5b54, m=0xdc55f8, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3278
#18 0x00cf27d5 in QTimer::timeout (this=0x99d5b54) at .moc/release-shared/moc_qtimer.cpp:134
#19 0x00cab286 in QTimer::timerEvent (this=0x99d5b54, e=0xbfe93e6c) at kernel/qtimer.cpp:271
#20 0x00ca6994 in QObject::event (this=0x99d5b54, e=0xbfe93e6c) at kernel/qobject.cpp:1181
#21 0x01144d84 in notify_helper (e=0xbfe93e6c, receiver=0x99d5b54, this=0x95b8290) at kernel/qapplication.cpp:4486
#22 QApplicationPrivate::notify_helper (this=0x95b8290, receiver=0x99d5b54, e=0xbfe93e6c) at kernel/qapplication.cpp:4458
#23 0x0114a133 in QApplication::notify (this=0xbfe93e6c, receiver=0x99d5b54, e=0xbfe93e6c) at kernel/qapplication.cpp:3886
#24 0x00471971 in KApplication::notify (this=0xbfe94184, receiver=0x99d5b54, event=0xbfe93e6c) at ../../kdeui/kernel/kapplication.cpp:311
#25 0x00c8e19e in QCoreApplication::notifyInternal (this=0xbfe94184, receiver=0x99d5b54, event=0xbfe93e6c) at kernel/qcoreapplication.cpp:787
#26 0x00cbec10 in sendEvent (event=0xbfe93e6c, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#27 QTimerInfoList::activateTimers (this=0x95b498c) at kernel/qeventdispatcher_unix.cpp:603
#28 0x00cbc122 in timerSourceDispatch (source=0x95b4958) at kernel/qeventdispatcher_glib.cpp:184
#29 0x06f6925f in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#30 0x06f69990 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#31 0x06f69c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#32 0x00cbcada in QEventDispatcherGlib::processEvents (this=0x958f250, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#33 0x011fce7a in QGuiEventDispatcherGlib::processEvents (this=0x958f250, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x00c8d1dd in QEventLoop::processEvents (this=0xbfe940e4, flags=...) at kernel/qeventloop.cpp:149
#35 0x00c8d421 in QEventLoop::exec (this=0xbfe940e4, flags=...) at kernel/qeventloop.cpp:201
#36 0x00c9219d in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#37 0x01142924 in QApplication::exec () at kernel/qapplication.cpp:3760
#38 0x0804ac91 in main (argc=) at ../../../kontact/src/main.cpp:218

Possible duplicates by query: bug 291135, bug 284521, bug 279749.

Reported using DrKonqi
Comment 1 itsef-admin 2012-02-22 13:08:25 UTC
Created attachment 69005 [details]
Simple, generic encrypted testmail to demonstrate the issue
Comment 2 itsef-admin 2012-02-22 13:15:17 UTC
(In reply to comment #1)

Additional information:

- This is a very longstanding bug and was originally reported by us against the Kolab version of KMail1/Kontact e35 - see https://roundup.kolab.org/issue4524 for more info.

- We are not using any GPG/gpgagent/whatever set-up, as that is not allowed by policy. Encrypted mails are never decrypted here, but transferred to a separate network.

- The attached mail is a generic sample mail which works to reproduce the problem.

- Kontact does NOT crash when I close (cancel) the passphrase dialogue *without* having clicked anywhere else - in that case, the encrypted mail will just be displayed.
Comment 3 itsef-admin 2012-02-22 14:12:42 UTC
Created attachment 69006 [details]
New crash information added by DrKonqi

kontact (4.8.0) on KDE Platform 4.8.00 (4.8.0 using Qt 4.7.4

- What I was doing when the application crashed:

See original report - this is an update for KDE 4.8.0 under Kubuntu 11.10

-- Backtrace (Reduced):
#7  0x0366b887 in KMime::Content::parent (this=0x92fd160) at ../../kmime/kmime_content.cpp:927
#8  0x03257730 in MessageCore::NodeHelper::nextSibling (node=0x92fd160) at ../../messagecore/nodehelper.cpp:32
#9  0x05b42fe5 in MessageViewer::ObjectTreeParser::parseObjectTreeInternal (this=0xbfbe47e8, node=0x92fd160) at ../../messageviewer/objecttreeparser.cpp:296
#10 0x05b44066 in MessageViewer::ObjectTreeParser::parseObjectTree (this=0xbfbe47e8, node=0x92fd160) at ../../messageviewer/objecttreeparser.cpp:266
#11 0x05b794c1 in MessageViewer::ViewerPrivate::parseContent (this=0x90f6300, content=0x92fd160) at ../../messageviewer/viewer_p.cpp:866
Comment 4 Christophe Marin 2012-02-23 13:40:09 UTC

*** This bug has been marked as a duplicate of bug 279749 ***