Bug 258069

Summary: KMail crashes when saving attachments
Product: [Applications] kmail2 Reporter: Andreas Kuhl <mail>
Component: generalAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: alvanx, gerhard.riener, jospoortvliet, mschiff, sebas, tokoe, winter
Priority: NOR    
Version: 2.0.89   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: test mail

Description Andreas Kuhl 2010-11-27 14:02:50 UTC
Application: kmail (2.0.89)
KDE Platform Version: 4.5.80 (4.6 Beta1)
Qt Version: 4.7.1
Operating System: Linux 2.6.35-2-desktop x86_64
Distribution: "openSUSE 11.3 (x86_64)"

-- Information about the crash:
I opened a mail with an attached PDF document as single window (not in the preview pane). I then right-clicked the attached PDF in the fancy email header and selected "save" in context menu. But instead of showing the file browser, KMail crashed. Happens every time with different emails and different attachement types (tested PDFs and images).

The crash can be reproduced every time.

-- Backtrace:
Application: KMail (kmail), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fca13b5c760 (LWP 5466))]

Thread 2 (Thread 0x7fc9f6f53710 (LWP 5471)):
#0  0x00007fca0edf839c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fca054beeb4 in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /usr/lib64/libQtWebKit.so.4
#2  0x00007fca0edf3a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007fca10f6782d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fca13b5c760 (LWP 5466)):
[KCrash Handler]
#6  0x0000000000000030 in ?? ()
#7  0x00007fca0d83542d in KMime::Content::header<KMime::Headers::ContentDisposition> (this=0xafdf60, create=true) at /usr/src/debug/kdepimlibs-4.5.80/kmime/kmime_content.h:781
#8  0x00007fca0a5832d9 in MessageViewer::NodeHelper::fileName (node=0xafdf60) at /usr/src/debug/kdepim-4.5.80/messageviewer/nodehelper.cpp:602
#9  0x00007fca0a5ba5a1 in MessageViewer::Util::saveContents (parent=0xdc9e50, contents=...) at /usr/src/debug/kdepim-4.5.80/messageviewer/util.cpp:177
#10 0x00007fca0a5d2a95 in MessageViewer::ViewerPrivate::slotHandleAttachment (this=0xf15b70, choice=<value optimized out>) at /usr/src/debug/kdepim-4.5.80/messageviewer/viewer_p.cpp:2349
#11 0x00007fca0a5d6d43 in MessageViewer::ViewerPrivate::qt_metacall (this=0xf15b70, _c=QMetaObject::InvokeMetaMethod, _id=59, _a=0x7fff71a946a0)
    at /usr/src/debug/kdepim-4.5.80/build/messageviewer/viewer_p.moc:251
#12 0x00007fca12537fef in QMetaObject::activate (sender=0xe16240, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff71a946a0) at kernel/qobject.cpp:3272
#13 0x00007fca1253bd1e in QSignalMapper::mapped (this=<value optimized out>, _t1=4) at .moc/release-shared/moc_qsignalmapper.cpp:101
#14 0x00007fca1253bf45 in QSignalMapper::map (this=0xe16240, sender=0xc846a0) at kernel/qsignalmapper.cpp:266
#15 0x00007fca1253c600 in QSignalMapper::qt_metacall (this=0xe16240, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7fff71a94810) at .moc/release-shared/moc_qsignalmapper.cpp:87
#16 0x00007fca12537fef in QMetaObject::activate (sender=0xc846a0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff71a94810) at kernel/qobject.cpp:3272
#17 0x00007fca118da952 in QAction::triggered (this=<value optimized out>, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#18 0x00007fca118dab4a in QAction::activate (this=0xc846a0, event=<value optimized out>) at kernel/qaction.cpp:1257
#19 0x00007fca11d195b3 in QMenuPrivate::activateCausedStack (this=0x106a010, causedStack=..., action=0xc846a0, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:993
#20 0x00007fca11d1f5ca in QMenuPrivate::activateAction (this=0x106a010, action=0xc846a0, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1085
#21 0x00007fca134b6bad in KMenu::mouseReleaseEvent (this=0x10575f0, e=<value optimized out>) at /usr/src/debug/kdelibs-4.5.80/kdeui/widgets/kmenu.cpp:458
#22 0x00007fca119324a8 in QWidget::event (this=0x10575f0, event=0x7fff71a95490) at kernel/qwidget.cpp:8200
#23 0x00007fca11d207bb in QMenu::event (this=0x10575f0, e=0x7fff71a95490) at widgets/qmenu.cpp:2410
#24 0x00007fca118e0cd4 in QApplicationPrivate::notify_helper (this=0x6609d0, receiver=0x10575f0, e=0x7fff71a95490) at kernel/qapplication.cpp:4445
#25 0x00007fca118e9a4a in QApplication::notify (this=<value optimized out>, receiver=0x10575f0, e=0x7fff71a95490) at kernel/qapplication.cpp:4006
#26 0x00007fca134e8976 in KApplication::notify (this=0x7fff71a97c00, receiver=0x10575f0, event=0x7fff71a95490) at /usr/src/debug/kdelibs-4.5.80/kdeui/kernel/kapplication.cpp:311
#27 0x00007fca12522e2c in QCoreApplication::notifyInternal (this=0x7fff71a97c00, receiver=0x10575f0, event=0x7fff71a95490) at kernel/qcoreapplication.cpp:732
#28 0x00007fca118e1cd5 in sendEvent (receiver=0x10575f0, event=0x7fff71a95490, alienWidget=0x0, nativeWidget=0x10575f0, buttonDown=0x7fca123bc178, lastMouseReceiver=..., spontaneous=true)
    at ../../src/corelib/kernel/qcoreapplication.h:215
#29 QApplicationPrivate::sendMouseEvent (receiver=0x10575f0, event=0x7fff71a95490, alienWidget=0x0, nativeWidget=0x10575f0, buttonDown=0x7fca123bc178, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:3105
#30 0x00007fca11960144 in QETWidget::translateMouseEvent (this=0x10575f0, event=<value optimized out>) at kernel/qapplication_x11.cpp:4372
#31 0x00007fca1195e5d9 in QApplication::x11ProcessEvent (this=0x7fff71a97c00, event=0x7fff71a95df0) at kernel/qapplication_x11.cpp:3564
#32 0x00007fca11986212 in x11EventSourceDispatch (s=0x664560, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#33 0x00007fca09363a93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#34 0x00007fca09364270 in ?? () from /usr/lib64/libglib-2.0.so.0
#35 0x00007fca09364510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#36 0x00007fca1254da8f in QEventDispatcherGlib::processEvents (this=0x6128e0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#37 0x00007fca11985eae in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#38 0x00007fca12522262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#39 0x00007fca12522475 in QEventLoop::exec (this=0x7fff71a96110, flags=...) at kernel/qeventloop.cpp:201
#40 0x00007fca11d1cd35 in QMenu::exec (this=<value optimized out>, p=..., action=0x0) at widgets/qmenu.cpp:2054
#41 0x00007fca0a5c6a4c in MessageViewer::ViewerPrivate::showAttachmentPopup (this=<value optimized out>, node=0x7fff71a96330, name=..., globalPos=...)
    at /usr/src/debug/kdepim-4.5.80/messageviewer/viewer_p.cpp:498
#42 0x00007fca0a5b101c in (anonymous namespace)::AttachmentURLHandler::handleContextMenuRequest (this=<value optimized out>, url=<value optimized out>, p=..., w=0xf15b70)
    at /usr/src/debug/kdepim-4.5.80/messageviewer/urlhandlermanager.cpp:833
#43 0x00007fca0a5b3e28 in MessageViewer::URLHandlerManager::handleContextMenuRequest (this=0xebf0b0, url=..., p=..., w=0xf15b70)
    at /usr/src/debug/kdepim-4.5.80/messageviewer/urlhandlermanager.cpp:400
#44 0x00007fca0a5c452e in MessageViewer::ViewerPrivate::slotUrlPopup (this=0xf15b70, aUrl=..., aPos=...) at /usr/src/debug/kdepim-4.5.80/messageviewer/viewer_p.cpp:1794
#45 0x00007fca0a5d6ad4 in MessageViewer::ViewerPrivate::qt_metacall (this=0xf15b70, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0x7fff71a96750)
    at /usr/src/debug/kdepim-4.5.80/build/messageviewer/viewer_p.moc:213
#46 0x00007fca12537fef in QMetaObject::activate (sender=0xf2efb0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff71a96750) at kernel/qobject.cpp:3272
#47 0x00007fca0a5db7e7 in MessageViewer::MailWebView::popupMenu (this=<value optimized out>, _t1=<value optimized out>, _t2=<value optimized out>)
    at /usr/src/debug/kdepim-4.5.80/build/messageviewer/moc_mailwebview.cpp:95
#48 0x00007fca0a5db91a in MessageViewer::MailWebView::event (this=0xf2efb0, event=0x7fff71a96e10) at /usr/src/debug/kdepim-4.5.80/messageviewer/mailwebview_webkit.cpp:74
#49 0x00007fca118e0cd4 in QApplicationPrivate::notify_helper (this=0x6609d0, receiver=0xf2efb0, e=0x7fff71a96e10) at kernel/qapplication.cpp:4445
#50 0x00007fca118e938b in QApplication::notify (this=<value optimized out>, receiver=0xf2efb0, e=0x7fff71a96e10) at kernel/qapplication.cpp:4085
#51 0x00007fca134e8976 in KApplication::notify (this=0x7fff71a97c00, receiver=0xf2efb0, event=0x7fff71a96e10) at /usr/src/debug/kdelibs-4.5.80/kdeui/kernel/kapplication.cpp:311
#52 0x00007fca12522e2c in QCoreApplication::notifyInternal (this=0x7fff71a97c00, receiver=0xf2efb0, event=0x7fff71a96e10) at kernel/qcoreapplication.cpp:732
#53 0x00007fca1195ff55 in sendSpontaneousEvent (this=<value optimized out>, event=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:218
#54 QETWidget::translateMouseEvent (this=<value optimized out>, event=<value optimized out>) at kernel/qapplication_x11.cpp:4443
#55 0x00007fca1195e5d9 in QApplication::x11ProcessEvent (this=0x7fff71a97c00, event=0x7fff71a977a0) at kernel/qapplication_x11.cpp:3564
#56 0x00007fca11986212 in x11EventSourceDispatch (s=0x664560, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#57 0x00007fca09363a93 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#58 0x00007fca09364270 in ?? () from /usr/lib64/libglib-2.0.so.0
#59 0x00007fca09364510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#60 0x00007fca1254da8f in QEventDispatcherGlib::processEvents (this=0x6128e0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#61 0x00007fca11985eae in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#62 0x00007fca12522262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#63 0x00007fca12522475 in QEventLoop::exec (this=0x7fff71a97ac0, flags=...) at kernel/qeventloop.cpp:201
#64 0x00007fca125268db in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#65 0x000000000040316e in _start ()

Reported using DrKonqi
Comment 1 Tobias Koenig 2010-12-11 23:46:09 UTC
Hej Andreas,

works fine here with current trunk version (4.6beta).
Does it crash when saving from within the preview pane as well? Does this really happen for all emails with attachments or only emails from special senders (e.g. with broken mail client)?

Ciao,
Tobias
Comment 2 Andreas Kuhl 2010-12-12 08:48:40 UTC
I tried again from the preview pane and KMail crashes too. Find a test mail with ODF document attached.

I just noticed some suspecious behaviour with Sebas` Lion Mail that I have installed to work together with KMail. It seems to frequently reload an opened mail causing KMail to reload the opened mail too. This happens each 1 -2 seconds. I could also see this by the fact, that if I scroll down longer mails, KMail jumps back to the top of the mail each 1-2 seconds. Annoying! :/

I tested whether Lion Mail could be the cause for all this trouble. So I shut down plasma-desktop and opened KMail again. And voila: No more crashing in KMail and the reload bug seems to be gone too.

So I assume this behavior is caused by Lion Mail. Any suggestion which information I could provide to Sebas for fixing this issue?
Comment 3 Andreas Kuhl 2010-12-12 08:49:22 UTC
Created attachment 54445 [details]
test mail
Comment 4 Tobias Koenig 2010-12-12 11:46:43 UTC
Hej,

maybe Sebastian can give some insight on this problem?
Sebas?

Ciao,
Tobias
Comment 5 Volker Krause 2010-12-30 14:21:47 UTC
*** Bug 260761 has been marked as a duplicate of this bug. ***
Comment 6 Volker Krause 2010-12-30 14:23:39 UTC
*** Bug 258161 has been marked as a duplicate of this bug. ***
Comment 7 jos poortvliet 2011-03-05 18:44:56 UTC
I currently don't run KMail2 anymore due to it being too slow over a unreliable web connection; so I don't know if this is still relevant ;-)
Comment 8 Christophe Marin 2011-04-07 14:05:26 UTC
I cannot reproduce the crash with the attached mail or one I wrote myself.  (& kdepim master)
Comment 9 Tobias Koenig 2011-06-04 12:14:22 UTC
Can not reproduce either with current version -> closing
Comment 10 Christophe Marin 2011-10-04 13:18:48 UTC
*** Bug 283312 has been marked as a duplicate of this bug. ***
Comment 11 Christophe Marin 2011-11-26 10:43:32 UTC
*** Bug 287594 has been marked as a duplicate of this bug. ***
Comment 12 Christophe Marin 2011-11-26 10:44:15 UTC
Reopen

from bug 287594 (KDE 4.7.3):

This started to happen this week. The crash either occurs right when clicking
the attachment, or after I've picked the location to save it. Sometimes no
crash happens; I havn't found a pattern. In one case I was finally able to save
a specific attachment after it had crashed about 4 times before. Most times it
crashes. This happens with different file types, I specifically remember pdfs
and different kinds of documents and presentations.
Comment 13 Allen Winter 2011-12-13 23:40:36 UTC
I opened Andreas' test mail in kmail2 master from today.
opened ok

I then right-clicked the attached PDF in the fancy email header and selected "save as" in context menu.
saved ok

I then opened the resulting file in Calligra ok

I also just opened the attachment directly from kmail2 and it opened ok

so not reproducable for me

since Christophe has this bug recently I won't reclose.
if anyone gets a useful backtrace with a recent version please post it.
Comment 14 Benjamin M 2011-12-14 09:44:38 UTC
4.7.4 fixed this for me as well. The recent report (the last duplicate) was from me in 4.7.3, but it works after the upgrade. Thanks, devs!
Comment 15 jos poortvliet 2011-12-15 21:46:20 UTC
Can't reproduce it either. So let's close it then :D