Bug 262764

Summary: kmail composer hangs whole kontact when writing mails
Product: [Applications] kontact Reporter: meyerm
Component: mailAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED WORKSFORME    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description meyerm 2011-01-10 16:33:17 UTC
Version:           unspecified (using KDE 4.5.4) 
OS:                Linux

I just updated to kdepim 4.4.9 using KDE 4.5.4 and now when composing an email kontact hangs after a while. No more interaction is possible even though the cursors keeps blinking and the window repaints itself when it was hidden (using no desktop effects). However, killing kontact seems to be the only possibility to get a working client back. So it's a data loss of the mails opened in the composer.

Reproducible: Sometimes

Steps to Reproduce:
Answer to a mail, write half a paper and then watch it hang forever... (it happened for the first time in the moment of sending a mail).

Actual Results:  
hang

Expected Results:  
continue editing/send

I started kontact from konsole:
http://kde.pastey.net/144697

After killing with -9, it said:
meyerm@yavin ~ $ *** KMail got signal 15 (Exiting)

(process:20899): GLib-WARNING **: g_main_context_prepare(): main loop already active in another thread
kontact: Fatal IO error: client killed
QCoreApplication::postEvent: Unexpected null receiver
Comment 1 meyerm 2011-01-10 16:36:30 UTC
Aah! It seems to happen all the time when I try to send a mail :-(
Comment 2 Christophe Marin 2011-01-10 17:25:38 UTC
Does it happen if you try to reproduce the issue in KMail instead of Kontact ?

If not, you could try to use gdb to gather more informations.

There's a brief howto on this page: http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_with_GDB

in konsole:

*gdb --args kontact --nofork
*run

When kontact stops being reactive, CTRL + C then:
*thread apply all backtrace
*kill (to terminate the kontact process)
*quit (to quit gdb)
Comment 3 meyerm 2011-01-10 18:36:21 UTC
Thanks for reacting that fast. It also happens in standalone kmail.

http://kde.pastey.net/144699

Since I saw messages about missing addressbooks etc. I want to add that choosing the receipient within kmail work flawlessly. But the problem can be triggered immediately by simply hitting send.

I'm happy to provide you with more data if needed.
Comment 4 Christophe Marin 2011-01-11 12:46:33 UTC
Thanks, Pasting inline:

meyerm@yavin ~ $ gdb --args kmail --nofork
GNU gdb (Gentoo 7.2 p1) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>...
Reading symbols from /usr/bin/kmail...Reading symbols from /usr/lib64/debug/usr/bin/kmail.debug...done.
done.
(gdb) run
Starting program: /usr/bin/kmail --nofork
Traceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib64/gcc/x86_64-pc-linux-gnu/4.5.2/libstdc++.so.6.0.14-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named libstdcxx.v6.printers
[Thread debugging using libthread_db enabled]
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
"/usr/bin/kmail(24069)" Soprano: "org.freedesktop.DBus.Error.ServiceUnknown - The name org.kde.nepomuk.services.nepomukstorage was not provided by any .service files"
"/usr/bin/kmail(24069)" Soprano: "QLocalSocket::connectToServer: Connection refused"
"/usr/bin/kmail(24069)" Soprano: "org.freedesktop.DBus.Error.ServiceUnknown - The name org.kde.nepomuk.services.nepomukstorage was not provided by any .service files"
"/usr/bin/kmail(24069)" Soprano: "QLocalSocket::connectToServer: Connection refused"
"/usr/bin/kmail(24069)" Soprano: "org.freedesktop.DBus.Error.ServiceUnknown - The name org.kde.nepomuk.services.nepomukstorage was not provided by any .service files"
"/usr/bin/kmail(24069)" Soprano: "QLocalSocket::connectToServer: Connection refused"
kmail(24069)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
kmail(24069)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
[New Thread 0x7fffdb515700 (LWP 24077)]
[New Thread 0x7fffdacea700 (LWP 24078)]
kmail(24069): No language dictionaries for the language :  "de" 

kmail(24069)/libakonadi Akonadi::SessionPrivate::socketError: Socket error occurred: "QLocalSocket::connectToServer: Invalid name" 
kmail(24069)/kio (KDirWatch) KDirWatchPrivate::removeEntry: doesn't know "/home/meyerm/Privat/pim/Adressbuch" 
^C
Program received signal SIGINT, Interrupt.
0x00007ffff48e39e3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
87      ../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
        in ../sysdeps/unix/sysv/linux/poll.c
(gdb) thread apply all backtrace

Thread 3 (Thread 0x7fffdacea700 (LWP 24078)):
#0  pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
#1  0x00007ffff513e564 in wait (this=<value optimized out>, mutex=0x7ffff9ce82c0, time=30000) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x7ffff9ce82c0, time=30000) at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff5131e97 in QThreadPoolThread::run (this=0x7ffff9ceec70) at concurrent/qthreadpool.cpp:140
#4  0x00007ffff513ddce in QThreadPrivate::start (arg=0x7ffff9ceec70) at thread/qthread_unix.cpp:285
#5  0x00007ffff2d0cd5c in start_thread (arg=0x7fffdacea700) at pthread_create.c:301
#6  0x00007ffff48ec80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7fffdb515700 (LWP 24077)):
#0  pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
#1  0x00007ffff513e564 in wait (this=<value optimized out>, mutex=0x7ffff9ce82c0, time=30000) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x7ffff9ce82c0, time=30000) at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff5131e97 in QThreadPoolThread::run (this=0x7ffff9c11f90) at concurrent/qthreadpool.cpp:140
#4  0x00007ffff513ddce in QThreadPrivate::start (arg=0x7ffff9c11f90) at thread/qthread_unix.cpp:285
#5  0x00007ffff2d0cd5c in start_thread (arg=0x7fffdb515700) at pthread_create.c:301
#6  0x00007ffff48ec80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7ffff7f99760 (LWP 24069)):
#0  0x00007ffff48e39e3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fffec4050f4 in g_main_context_poll (context=0x7ffff84ce120, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3093
#2  g_main_context_iterate (context=0x7ffff84ce120, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2775
#3  0x00007fffec405661 in g_main_context_iteration (context=0x7ffff84ce120, may_block=1) at gmain.c:2843
#4  0x00007ffff52781bf in QEventDispatcherGlib::processEvents (this=0x7ffff82088d0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#5  0x00007ffff5815186 in QGuiEventDispatcherGlib::processEvents (this=0x7ffff8d8eeb0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#6  0x00007ffff5244992 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007ffff5244d04 in QEventLoop::exec (this=0x7fffffffa850, flags=...) at kernel/qeventloop.cpp:201
#8  0x00007ffff7388ca6 in KJob::exec (this=0x7ffff9f27a80) at /var/tmp/portage/kde-base/kdelibs-4.5.4/work/kdelibs-4.5.4/kdecore/jobs/kjob.cpp:204
#9  0x00007fffee509f39 in KPIM::KAddrBookExternal::expandDistributionList (listName=..., emptyList=@0x7fffffffab77) at /var/tmp/portage/kde-base/libkdepim-4.4.9/work/libkdepim-4.4.9/libkdepim/kaddrbookexternal.cpp:217
#10 0x00007ffff6bf9451 in KMail::StringUtil::expandAliases (recipients=<value optimized out>, distributionListEmpty=...) at /var/tmp/portage/kde-base/kmail-4.4.9/work/kmail-4.4.9/kmail/stringutil.cpp:931
#11 0x00007ffff6bbc4a6 in KMail::Util::validateAddresses (parent=0x7ffff9c8baa0, addresses=<value optimized out>) at /var/tmp/portage/kde-base/kmail-4.4.9/work/kmail-4.4.9/kmail/util.cpp:141
#12 0x00007ffff68bf3af in KMComposeWin::doSend (this=0x7ffff9c8baa0, method=<value optimized out>, saveIn=KMComposeWin::None) at /var/tmp/portage/kde-base/kmail-4.4.9/work/kmail-4.4.9/kmail/kmcomposewin.cpp:3520
#13 0x00007ffff68c17cf in KMComposeWin::slotSendNow (this=0x7ffff9c8baa0) at /var/tmp/portage/kde-base/kmail-4.4.9/work/kmail-4.4.9/kmail/kmcomposewin.cpp:3810
#14 0x00007ffff68cf223 in KMComposeWin::qt_metacall (this=0x7ffff9c8baa0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffffffb7b0) at /var/tmp/portage/kde-base/kmail-4.4.9/work/kmail-4.4.9_build/kmail/kmcomposewin.moc:249
#15 0x00007ffff525e307 in QMetaObject::activate (sender=0x7ffff9da7990, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffffffb7b0) at kernel/qobject.cpp:3272
#16 0x00007ffff573f752 in QAction::triggered (this=0x7ffff8d8eeb0, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#17 0x00007ffff57412c4 in QAction::activate (this=0x7ffff9da7990, event=<value optimized out>) at kernel/qaction.cpp:1257
#18 0x00007ffff5743c47 in QAction::event (this=0x7ffff8d8eeb0, e=<value optimized out>) at kernel/qaction.cpp:1183
#19 0x00007ffff7895bd0 in KAction::event (this=<value optimized out>, event=0x7fffffffbe70) at /var/tmp/portage/kde-base/kdelibs-4.5.4/work/kdelibs-4.5.4/kdeui/actions/kaction.cpp:131
#20 0x00007ffff5748e9c in QApplicationPrivate::notify_helper (this=0x7ffff84cbac0, receiver=0x7ffff9da7990, e=0x7fffffffbe70) at kernel/qapplication.cpp:4445
#21 0x00007ffff574e8fd in QApplication::notify (this=0x7fffffffd580, receiver=0x7ffff9da7990, e=0x7fffffffbe70) at kernel/qapplication.cpp:4324
#22 0x00007ffff7982a96 in KApplication::notify (this=0x7fffffffd580, receiver=0x7ffff9da7990, event=0x7fffffffbe70) at /var/tmp/portage/kde-base/kdelibs-4.5.4/work/kdelibs-4.5.4/kdeui/kernel/kapplication.cpp:310
#23 0x00007ffff5245b4b in QCoreApplication::notifyInternal (this=0x7fffffffd580, receiver=0x7ffff9da7990, event=0x7fffffffbe70) at kernel/qcoreapplication.cpp:732
#24 0x00007ffff578f1c1 in sendEvent (this=<value optimized out>, e=0x7fffffffc4a0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#25 QShortcutMap::dispatchEvent (this=<value optimized out>, e=0x7fffffffc4a0) at kernel/qshortcutmap.cpp:879
#26 0x00007ffff5791335 in QShortcutMap::tryShortcutEvent (this=0x7ffff84cbbe8, o=<value optimized out>, e=0x7fffffffc4a0) at kernel/qshortcutmap.cpp:364
#27 0x00007ffff575060d in QApplication::notify (this=0x7fffffffd580, receiver=0x7ffff9c85640, e=0x7fffffffc4a0) at kernel/qapplication.cpp:3887
#28 0x00007ffff7982a96 in KApplication::notify (this=0x7fffffffd580, receiver=0x7ffff9c85640, event=0x7fffffffc4a0) at /var/tmp/portage/kde-base/kdelibs-4.5.4/work/kdelibs-4.5.4/kdeui/kernel/kapplication.cpp:310
#29 0x00007ffff5245b4b in QCoreApplication::notifyInternal (this=0x7fffffffd580, receiver=0x7ffff9c85640, event=0x7fffffffc4a0) at kernel/qcoreapplication.cpp:732
#30 0x00007ffff580f935 in QKeyMapper::sendKeyEvent (keyWidget=0x7ffff9c85640, grab=<value optimized out>, type=QEvent::KeyPress, code=16777220, modifiers=<value optimized out>, text=..., autorepeat=false, count=1, nativeScanCode=36, nativeVirtualKey=65293, nativeModifiers=20)
    at kernel/qkeymapper_x11.cpp:1867
#31 0x00007ffff5812090 in QKeyMapperPrivate::translateKeyEvent (this=0x7ffff8500f00, keyWidget=0x7ffff9c85640, event=<value optimized out>, grab=8) at kernel/qkeymapper_x11.cpp:1837
#32 0x00007ffff57e6ec4 in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fffffffd070) at kernel/qapplication_x11.cpp:3457
#33 0x00007ffff5815982 in x11EventSourceDispatch (s=0x7ffff84cf1d0, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#34 0x00007fffec404b7a in g_main_dispatch (context=0x7ffff84ce120) at gmain.c:2149
#35 g_main_context_dispatch (context=0x7ffff84ce120) at gmain.c:2702
#36 0x00007fffec405390 in g_main_context_iterate (context=0x7ffff84ce120, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2780
#37 0x00007fffec405661 in g_main_context_iteration (context=0x7ffff84ce120, may_block=1) at gmain.c:2843
#38 0x00007ffff52781bf in QEventDispatcherGlib::processEvents (this=0x7ffff82088d0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#39 0x00007ffff5815186 in QGuiEventDispatcherGlib::processEvents (this=0x7ffff8d8eeb0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#40 0x00007ffff5244992 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#41 0x00007ffff5244d04 in QEventLoop::exec (this=0x7fffffffd3b0, flags=...) at kernel/qeventloop.cpp:201
#42 0x00007ffff5249fab in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#43 0x00007ffff7ffd58a in main (argc=<value optimized out>, argv=<value optimized out>) at /var/tmp/portage/kde-base/kmail-4.4.9/work/kmail-4.4.9/kmail/main.cpp:156
(gdb) kill
Kill the program being debugged? (y or n) y
(gdb) quit
Comment 5 Christophe Marin 2011-01-11 12:48:21 UTC
One more question: is Akonadi running ? (try to run kaddressbook, if you see your contacts, it is)
Comment 6 meyerm 2011-01-11 14:06:33 UTC
Thank you, I'll happily check.

While all my contacts are still available in KMail they are missing in KAddressbook. Since my KOrganizer is also working normally, I didn't realize that something is wrong. There is not even an addressbook shown on the left column within KAdressbook, so your guess about a not running akonadi seems to be quite good ;-)

In my "resources" system settings there was no addressbook either. I readded my .vcf-file and set it as standard. This didn't help. I then choose to add a "new" addressbook in KAddressbook and tried using the "KDE Resource" and my .vcf as "VCard file". Neither worked. So I guess this means KAddressbook is no longer able to work without Akonadi at all?

I don't have any System Setting which contains the string "akonadi". Since I have no clue about Akonadi I finally chose to use the akonadi_console, removed the duplicated entries and clicked "restart". Nothing changed. I used the menu "Server->stop" which was acknowledged by a notification saying the correspondent applications won't work any longer. Shortly thereafter the akonadi_console browser showed some data (including my addressbook)... Ook (why after stoping...?), now KAddressbook shows the contacts again and kmail can send mails again. So far, so good. Thank you.

I meanwhile updated to KDE 4.5.5 and now it looks like Akonadi is beeing started automatically again.


But despite me not messing around with any Akonadi-settings myself (perhaps by accident?), I thought that kmail 1.x is still "Akonadi-free" - why is it affected by a missing Akonadi-daemon? And why is it then simply hanging instead of complaining?


Thank you so far - I got a lot of mails to write ;-).


BTW: Should I prefer pasting long outputs inline over pastebins on b.k.o in the future?
Comment 7 Christophe Marin 2011-01-11 16:01:14 UTC
You're right, KMail in kdepim 4.4.9 doesn't use Akonadi. However, kaddressbook does since 4.4.0. 
That's why Akonadi *must* be running or anything that tries to access your addressbook will hang forever (what you initially reported)

Side note: Always paste backtraces directly in the comments. That makes the bugs triagers happy.

When using an external service to paste some text or pictures, you have no guarantee that your data will be there forever.

Closing this report since everything is now working as expected.