Version: (using Devel) Installed from: Compiled sources Compiler: gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2) OS: Linux When choosing File->Exit or pressing Ctrl+Q, KMail crashes. The following messages left on the console: Fatal Error: Accessed global static 'KProtocolManagerPrivate *kProtocolManagerPrivate()' after destruction. Defined at /build/buildd/kde4libs-4.0.2/kio/kio/kprotocolmanager.cpp:60 *** KMail got signal 6 (Crashing) kmail: /home/kde4-dev/src/KDE/kdepim/kmail/kmkernel.cpp:2052: static KMKernel* KMKernel::self(): Assertion `mySelf' failed. KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = kmail path = <unknown> pid = 7287
I haven't seen this crash yet, quitting works fine for me without any crash, both in KMail and in Kontact (as long as the composer wasn't opened).
I think I just stumbled over this crash (at least this assertion). Kontact (kdepimlibs r794328, kdepim r783669) just crashed with the backtrace below when I tried to close it. Backtrace: Application: Kontact (kontact), signal SIGABRT Using host libthread_db library "/lib/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread 0xb4e7b6d0 (LWP 10115)] [KCrash handler] #14 0xffffe410 in __kernel_vsyscall () #15 0xb53991f1 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #16 0xb539a9b8 in *__GI_abort () at abort.c:88 #17 0xb53927d5 in *__GI___assert_fail (assertion=0xb3270f3b "mySelf", file=0xb327088c "/var/tmp/portage/kde-base/kdepim-9999.4/work/kdepim-9999.4/kmail/kmkernel.cpp", line=2052, function=0xb3271b80 "static KMKernel* KMKernel::self()") at assert.c:78 #18 0xb30614f7 in KMKernel::self () at /var/tmp/portage/kde-base/kdepim-9999.4/work/kdepim-9999.4/kmail/kmkernel.cpp:2052 #19 0xb2f13159 in KMFolderComboBox::createFolderList (this=0x84c9638, names=0xbfcabbf0, folders=0xbfcabbec) at /var/tmp/portage/kde-base/kdepim-9999.4/work/kdepim-9999.4/kmail/kmfoldercombobox.cpp:65 #20 0xb2f13437 in KMFolderComboBox::getFolder (this=0x84c9638) at /var/tmp/portage/kde-base/kdepim-9999.4/work/kdepim-9999.4/kmail/kmfoldercombobox.cpp:142 #21 0xb2f583d5 in KMComposeWin::writeConfig (this=0x83fe1a0) at /var/tmp/portage/kde-base/kdepim-9999.4/work/kdepim-9999.4/kmail/kmcomposewin.cpp:652 #22 0xb2f593d1 in ~KMComposeWin (this=0x83fe1a0) at /var/tmp/portage/kde-base/kdepim-9999.4/work/kdepim-9999.4/kmail/kmcomposewin.cpp:383 #23 0x0804bb26 in qDeleteAll<QList<KMainWindow*>::const_iterator> ( begin=@0xbfcabd28, end=@0xbfcabd24) at /usr/include/qt4/QtCore/qalgorithms.h:352 #24 0x0804bb92 in qDeleteAll<QList<KMainWindow*> > (c=@0xbfcabe64) at /usr/include/qt4/QtCore/qalgorithms.h:360 #25 0x0804b4df in main (argc=1, argv=0xbfcabf14) at /var/tmp/portage/kde-base/kdepim-9999.4/work/kdepim-9999.4/kontact/src/main.cpp:166 #26 0xb5385fdc in __libc_start_main (main=0x804ac20 <main>, argc=1, ubp_av=0xbfcabf14, init=0x804c200 <__libc_csu_init>, fini=0x804c1f0 <__libc_csu_fini>, rtld_fini=0xb7efa100 <_dl_fini>, stack_end=0xbfcabf0c) at libc-start.c:229 #27 0x0804a851 in _start () #0 0xffffe410 in __kernel_vsyscall ()
I just realized that I indeed had a composer window open when kontact crashed. And indeed, it does not crash when there is no composer window open, but crashes reproducibly when there is one open.
SVN commit 797360 by tmcguire: Don't crash when quitting Kontact if a composer window is open. BUG:160002 M +21 -1 kmkernel.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=797360