Bug 343264 - Kleopatra randomly crashes in the background, potentially while dealing with signed emails
Summary: Kleopatra randomly crashes in the background, potentially while dealing with ...
Status: RESOLVED WORKSFORME
Alias: None
Product: kleopatra
Classification: Applications
Component: general (show other bugs)
Version: 2.2.0
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-25 04:12 UTC by Matthew Dawson
Modified: 2018-11-30 04:03 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matthew Dawson 2015-01-25 04:12:58 UTC
-- Information about the crash:
While I was working on my computer, Kelopatra randomly crashed in the background (I wasn't even aware it was running at the time).  I think I may have been looking at some signed emails around that time.

I double checked the generated binary, all the null checks are present.  It did fail copying the fpr member of subkeys, and the register holding the pointer for subkeys had an address of 0x90, which seems weird to me.

I have a core dumped if you have something more you'd like me to poke into, and I can keep the debug symbols/source code around for a couple of days.  I lurk in #kde-devel as MJD, feel free to ping me.

-- Backtrace:
Application: Kleopatra (kleopatra), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
81	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f67cfca9800 (LWP 14228))]

Thread 3 (Thread 0x7f67b7d66700 (LWP 14286)):
#0  __GI___pthread_mutex_lock (mutex=0x7f67b0000a60) at ../nptl/pthread_mutex_lock.c:70
#1  0x00007f67c6e5ec31 in g_mutex_lock (mutex=mutex@entry=0x7f67b00009a0) at /usr/src/debug/dev-libs/glib-2.40.2/glib-2.40.2/glib/gthread-posix.c:209
#2  0x00007f67c6e1868b in g_main_context_check (context=context@entry=0x7f67b00009a0, max_priority=2147483647, fds=fds@entry=0x7f67b00034d0, n_fds=n_fds@entry=1) at /usr/src/debug/dev-libs/glib-2.40.2/glib-2.40.2/glib/gmain.c:3577
#3  0x00007f67c6e18c23 in g_main_context_iterate (context=context@entry=0x7f67b00009a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /usr/src/debug/dev-libs/glib-2.40.2/glib-2.40.2/glib/gmain.c:3731
#4  0x00007f67c6e18dac in g_main_context_iteration (context=0x7f67b00009a0, may_block=1) at /usr/src/debug/dev-libs/glib-2.40.2/glib-2.40.2/glib/gmain.c:3795
#5  0x00007f67cd344356 in QEventDispatcherGlib::processEvents (this=0x7f67b00008c0, flags=...) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qeventdispatcher_glib.cpp:452
#6  0x00007f67cd3127c1 in QEventLoop::processEvents (this=this@entry=0x7f67b7d65d80, flags=...) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qeventloop.cpp:149
#7  0x00007f67cd312b65 in QEventLoop::exec (this=this@entry=0x7f67b7d65d80, flags=...) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qeventloop.cpp:204
#8  0x00007f67cd201129 in QThread::exec (this=this@entry=0x28b26f0) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/thread/qthread.cpp:538
#9  0x00007f67cd2f2893 in QInotifyFileSystemWatcherEngine::run (this=0x28b26f0) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/io/qfilesystemwatcher_inotify.cpp:265
#10 0x00007f67cd203acf in QThreadPrivate::start (arg=0x28b26f0) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/thread/qthread_unix.cpp:349
#11 0x00007f67ced18333 in start_thread (arg=0x7f67b7d66700) at pthread_create.c:309
#12 0x00007f67cb96d8ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7f67b7565700 (LWP 14831)):
#0  pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x00007f67cd20403c in wait (time=2000, this=0x28efe40) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=this@entry=0x28efb98, mutex=mutex@entry=0x28efb90, time=time@entry=2000) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/thread/qwaitcondition_unix.cpp:158
#3  0x00000000005f7034 in (anonymous namespace)::ReaderStatusThread::run (this=0x28efb80) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/smartcard/readerstatus.cpp:543
#4  0x00007f67cd203acf in QThreadPrivate::start (arg=0x28efb80) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/thread/qthread_unix.cpp:349
#5  0x00007f67ced18333 in start_thread (arg=0x7f67b7565700) at pthread_create.c:309
#6  0x00007f67cb96d8ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f67cfca9800 (LWP 14228)):
[KCrash Handler]
#6  0x00007f67cf59e131 in GpgME::Key::primaryFingerprint (this=this@entry=0x2ab3e60) at /usr/src/debug/kde-base/kdepimlibs-4.14.3/kdepimlibs-4.14.3/gpgme++/key.cpp:239
#7  0x000000000049bc30 in operator()<GpgME::Key> (this=<optimized out>, rhs=..., lhs=...) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/models/predicates.h:102
#8  QAlgorithmsPrivate::qBinaryFindHelper<__gnu_cxx::__normal_iterator<GpgME::Key*, std::vector<GpgME::Key> >, GpgME::Key, Kleo::_detail::ByFingerprint<std::less> > (begin=..., begin@entry=..., end=..., value=..., lessThan=...) at /usr/include/qt4/QtCore/qalgorithms.h:514
#9  0x00000000004a0130 in qBinaryFind<__gnu_cxx::__normal_iterator<GpgME::Key*, std::vector<GpgME::Key> >, GpgME::Key, Kleo::_detail::ByFingerprint<std::less> > (value=..., end=..., begin=..., lessThan=...) at /usr/include/qt4/QtCore/qalgorithms.h:309
#10 (anonymous namespace)::HierarchicalKeyListModel::doAddKeys (this=0x285a740, keys=std::vector of length 1, capacity 1 = {...}) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/models/keylistmodel.cpp:754
#11 0x000000000049c518 in Kleo::AbstractKeyListModel::addKey (this=0x285a740, key=...) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/models/keylistmodel.cpp:212
#12 0x00000000004aace4 in Kleo::KeyListController::Private::slotAddKey (this=0x28a08b0, key=...) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/view/keylistcontroller.cpp:207
#13 0x00000000004b120d in Kleo::KeyListController::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3_build/kleopatra/moc_keylistcontroller.cpp:104
#14 0x00007f67cd329303 in QMetaObject::activate (sender=sender@entry=0x28aaaf0, m=m@entry=0x652760 <Kleo::KeyCache::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff45ab9770) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qobject.cpp:3567
#15 0x000000000048ad40 in added (_t1=..., this=0x28aaaf0) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3_build/kleopatra/moc_keycache.cpp:133
#16 Kleo::KeyCache::insert (this=this@entry=0x28aaaf0, keys=std::vector of length 102, capacity 102 = {...}) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/models/keycache.cpp:828
#17 0x000000000048b8fe in refresh (keys=std::vector of length 102, capacity 102 = {...}, this=0x28aaaf0) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/models/keycache.cpp:699
#18 Kleo::KeyCache::RefreshKeysJob::Private::updateKeyCache (this=this@entry=0x2888550) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/models/keycache.cpp:940
#19 0x000000000048baf0 in Kleo::KeyCache::RefreshKeysJob::Private::jobDone (this=this@entry=0x2888550, result=...) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/models/keycache.cpp:890
#20 0x000000000048c05d in listAllKeysJobDone (nextKeys=std::vector of length 79, capacity 79 = {...}, res=..., this=0x2888550) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/models/keycache.cpp:861
#21 Kleo::KeyCache::RefreshKeysJob::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3_build/kleopatra/moc_keycache_p.cpp:58
#22 0x00007f67cd329303 in QMetaObject::activate (sender=0x2a1c950, m=m@entry=0x7f67cfb46a80 <Kleo::ListAllKeysJob::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff45ab9be0) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qobject.cpp:3567
#23 0x00007f67cf82fce1 in Kleo::ListAllKeysJob::result (this=this@entry=0x2a1c950, _t1=..., _t2=std::vector of length 79, capacity 79 = {...}, _t3=std::vector of length 3, capacity 3 = {...}, _t4=..., _t5=...) at /usr/src/debug/kde-base/kdepim-common-libs-4.14.3/kdepim-common-libs-4.14.3_build/libkleo/moc_listallkeysjob.cpp:117
#24 0x00007f67cf8fba37 in doEmitResult<GpgME::KeyListResult, std::vector<GpgME::Key>, std::vector<GpgME::Key>, QString, GpgME::Error> (tuple=..., this=0x2a1c950) at /usr/src/debug/kde-base/kdepim-common-libs-4.14.3/kdepim-common-libs-4.14.3/libkleo/backends/qgpgme/threadedjobmixin.h:222
#25 slotFinished (this=0x2a1c950) at /usr/src/debug/kde-base/kdepim-common-libs-4.14.3/kdepim-common-libs-4.14.3/libkleo/backends/qgpgme/threadedjobmixin.h:186
#26 Kleo::QGpgMEListAllKeysJob::qt_static_metacall (_o=0x2a1c950, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /usr/src/debug/kde-base/kdepim-common-libs-4.14.3/kdepim-common-libs-4.14.3_build/libkleo/moc_qgpgmelistallkeysjob.cpp:48
#27 0x00007f67cd32daf1 in QObject::event (this=0x2a1c950, e=<optimized out>) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qobject.cpp:1222
#28 0x00007f67cc6292ec in QApplicationPrivate::notify_helper (this=this@entry=0x2747910, receiver=receiver@entry=0x2a1c950, e=e@entry=0x7f67a000a650) at /usr/src/debug/dev-qt/qtgui-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/gui/kernel/qapplication.cpp:4565
#29 0x00007f67cc62ff78 in QApplication::notify (this=this@entry=0x7fff45aba680, receiver=receiver@entry=0x2a1c950, e=e@entry=0x7f67a000a650) at /usr/src/debug/dev-qt/qtgui-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/gui/kernel/qapplication.cpp:4351
#30 0x00007f67ce8babda in KApplication::notify (this=0x7fff45aba680, receiver=0x2a1c950, event=0x7f67a000a650) at /usr/src/debug/kde-base/kdelibs-4.14.3-r1/kdelibs-4.14.3/kdeui/kernel/kapplication.cpp:311
#31 0x00007f67cd313d8c in QCoreApplication::notifyInternal (this=0x7fff45aba680, receiver=receiver@entry=0x2a1c950, event=event@entry=0x7f67a000a650) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcoreapplication.cpp:953
#32 0x00007f67cd317267 in sendEvent (event=0x7f67a000a650, receiver=0x2a1c950) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcoreapplication.h:231
#33 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, receiver@entry=0x272c150, event_type=event_type@entry=0, data=0x26c7b10) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcoreapplication.cpp:1577
#34 0x00007f67cd317727 in QCoreApplication::sendPostedEvents (receiver=0x272c150, receiver@entry=0x0, event_type=event_type@entry=0) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcoreapplication.cpp:1470
#35 0x00007f67cd3441be in sendPostedEvents () at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcoreapplication.h:236
#36 postEventSourceDispatch (s=0x272c150) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qeventdispatcher_glib.cpp:300
#37 0x00007f67c6e18a04 in g_main_dispatch (context=0x2747c60) at /usr/src/debug/dev-libs/glib-2.40.2/glib-2.40.2/glib/gmain.c:3064
#38 g_main_context_dispatch (context=context@entry=0x2747c60) at /usr/src/debug/dev-libs/glib-2.40.2/glib-2.40.2/glib/gmain.c:3663
#39 0x00007f67c6e18ce5 in g_main_context_iterate (context=context@entry=0x2747c60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /usr/src/debug/dev-libs/glib-2.40.2/glib-2.40.2/glib/gmain.c:3734
#40 0x00007f67c6e18dac in g_main_context_iteration (context=0x2747c60, may_block=1) at /usr/src/debug/dev-libs/glib-2.40.2/glib-2.40.2/glib/gmain.c:3795
#41 0x00007f67cd34433c in QEventDispatcherGlib::processEvents (this=0x26c9490, flags=...) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qeventdispatcher_glib.cpp:450
#42 0x00007f67cc6d0e16 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/dev-qt/qtgui-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/gui/kernel/qguieventdispatcher_glib.cpp:204
#43 0x00007f67cd3127c1 in QEventLoop::processEvents (this=this@entry=0x7fff45aba2b0, flags=...) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qeventloop.cpp:149
#44 0x00007f67cd312b65 in QEventLoop::exec (this=this@entry=0x7fff45aba2b0, flags=...) at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qeventloop.cpp:204
#45 0x00007f67cd318397 in QCoreApplication::exec () at /usr/src/debug/dev-qt/qtcore-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcoreapplication.cpp:1225
#46 0x00007f67cc62761c in QApplication::exec () at /usr/src/debug/dev-qt/qtgui-4.8.6-r1/qt-everywhere-opensource-src-4.8.6/src/gui/kernel/qapplication.cpp:3823
#47 0x000000000043c06d in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kde-base/kleopatra-4.14.3/kleopatra-4.14.3/kleopatra/main.cpp:320

Reproducible: Didn't try
Comment 1 Andrew Crouthamel 2018-10-31 03:58:16 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 2 Bug Janitor Service 2018-11-15 10:50:56 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 3 Bug Janitor Service 2018-11-30 04:03:36 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!