Bug 105890 - kmail crash due to gpg/libgpgme glibc corruption error
Summary: kmail crash due to gpg/libgpgme glibc corruption error
Status: RESOLVED DUPLICATE of bug 92737
Alias: None
Product: kmail
Classification: Unmaintained
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-18 15:33 UTC by Heiko Nardmann
Modified: 2007-09-14 12:17 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Heiko Nardmann 2005-05-18 15:33:28 UTC
Version:            (using KDE KDE 3.4.0)
Installed from:    SuSE RPMs
OS:                Linux

I today have sent three signed test mails to my own account to test the gpg integration (after newly installing SuSE 9.3 but keeping the home dirs).
When these mails arrived (fetched in a chain using fetchmail via POP3 and then using kmail via local account polling), kmail tries to display the signed message and crashes then without displaying anything.

I have started kmail from the konsole then. This resulted in the following error message:

gpgmeplug checkMessageSignature status flags: 0
*** glibc detected *** double free or corruption (!prev): 0x08adc3c8 ***
*** KMail got signal 6 (Crashing)

After googling I found that this is some message from glibc which points to some component having problem with memory handling - to be polite.
There was also a hint to use the environment variable MALLOC_CHECK_ with the following values:

MALLOC_CHECK_=0: ignores the above problems
MALLOC_CHECK_=1: print a message to stderr but continue
MALLOC_CHECK_=2: immediate abort

So I first used "0" and this helped - as a workaround.
Then I tried to create a core file but without luck - although I checked ulimit output for a sensible coredump file size.

Next step: setting MALLOC_CHECK_ to "2" gave me at least a window of the KDE crash manager. So I copied the backtrace from there and pasted it here.
According to this backtrace there may be a problem in the libgpgme library.

Although I now can continue to work (with MALLOC_CHECK_=0) I would like to use a debugged kmail and valgrind to see where the problem is. My problem: using a 400MHz machine with valgrind is not really fun.

(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#7  0xffffe410 in ?? ()
#8  0xbfffd6f4 in ?? ()
#9  0x00000006 in ?? ()
#10 0x0000553f in ?? ()
#11 0x424182c1 in raise () from /lib/tls/libc.so.6
#12 0x42419b75 in abort () from /lib/tls/libc.so.6
#13 0x42452019 in malloc_usable_size () from /lib/tls/libc.so.6
#14 0x42453675 in free () from /lib/tls/libc.so.6
#15 0x40dfbd72 in gpgme_op_keylist_next () from /usr/lib/libgpgme.so.11
#16 0x40e058f0 in gpgme_hash_algo_name () from /usr/lib/libgpgme.so.11
#17 0x40e05b54 in gpgme_release () from /usr/lib/libgpgme.so.11
#18 0x40dfcc62 in gpgme_get_key () from /usr/lib/libgpgme.so.11
#19 0x40df9666 in gpgme_get_sig_key () from /usr/lib/libgpgme.so.11
#20 0x40d64b9c in CryptPlugWrapper::encryptAndSignMessage ()
   from /opt/kde3/lib/libkleopatra.so.0
#21 0x40d6552e in CryptPlug::checkMessageSignature ()
   from /opt/kde3/lib/libkleopatra.so.0
#22 0x40d65832 in CryptPlugWrapper::checkMessageSignature ()
   from /opt/kde3/lib/libkleopatra.so.0
#23 0x4040e23f in KMail::ObjectTreeParser::writeOpaqueOrMultipartSignedData ()
   from /opt/kde3/lib/libkmailprivate.so
#24 0x40411c91 in KMail::ObjectTreeParser::processMultiPartSignedSubtype ()
   from /opt/kde3/lib/libkmailprivate.so
#25 0x40411e2b in (anonymous namespace)::MultiPartSignedBodyPartFormatter::process () from /opt/kde3/lib/libkmailprivate.so
#26 0x40408cc7 in KMail::ObjectTreeParser::parseObjectTree ()
   from /opt/kde3/lib/libkmailprivate.so
#27 0x404358a9 in KMReaderWin::parseMsg ()
   from /opt/kde3/lib/libkmailprivate.so
#28 0x403780a3 in KMReaderWin::displayMessage ()
   from /opt/kde3/lib/libkmailprivate.so
#29 0x4037d71c in KMReaderWin::updateReaderWin ()
   from /opt/kde3/lib/libkmailprivate.so
#30 0x40463edb in KMReaderWin::qt_invoke ()
   from /opt/kde3/lib/libkmailprivate.so
#31 0x41c05e7e in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#32 0x41c06626 in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#33 0x41f5b619 in QTimer::timeout () from /usr/lib/qt3/lib/libqt-mt.so.3
#34 0x41c2b02f in QTimer::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#35 0x41ba2d5f in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#36 0x41ba4a83 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#37 0x4182e6b1 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#38 0x41b9750c in QEventLoop::activateTimers ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#39 0x41b50286 in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#40 0x41bbae51 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#41 0x41bbac96 in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#42 0x41ba494f in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#43 0x0804a9d6 in ?? ()
#44 0xbfffea80 in ?? ()
#45 0xbfffe990 in ?? ()
#46 0x00000000 in ?? ()
#47 0x00000000 in ?? ()
#48 0x419adef4 in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3
#49 0x42453a31 in free () from /lib/tls/libc.so.6
#50 0x42405e80 in __libc_start_main () from /lib/tls/libc.so.6
#51 0x0804a741 in ?? ()
Comment 1 David Faure 2005-05-18 18:07:32 UTC
valgrind does an even better job than malloc_check, for debugging memory errors.
Can you try it?

valgrind --tool=addrcheck --num-callers=50 kmail --nofork 2>&1 | tee log

("skin" instead of "tool" if you have an old valgrind, and memcheck instead of addrcheck or no tool option at all if it's even older)

Please also specify your gpgme version (it can either be a standalone lib/package, or installed as gpgme-copy together with kdepim)

Thanks.
Comment 2 Andreas Kling 2006-08-01 15:00:39 UTC

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