[kleopatra] [Bug 343264] New: Kleopatra randomly crashes in the background, potentially while dealing with signed emails

Matthew Dawson matthew at mjdsystems.ca
Sun Jan 25 04:12:58 GMT 2015


https://bugs.kde.org/show_bug.cgi?id=343264

            Bug ID: 343264
           Summary: Kleopatra randomly crashes in the background,
                    potentially while dealing with signed emails
           Product: kleopatra
           Version: 2.2.0
          Platform: Gentoo Packages
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: kdepim-bugs at kde.org
          Reporter: matthew at mjdsystems.ca
                CC: mutz at kde.org

-- 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 at 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 at entry=0x7f67b00009a0, max_priority=2147483647,
fds=fds at entry=0x7f67b00034d0, n_fds=n_fds at 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 at entry=0x7f67b00009a0, block=block at entry=1,
dispatch=dispatch at 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 at 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 at 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 at 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 at entry=0x28efb98,
mutex=mutex at entry=0x28efb90, time=time at 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 at 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 at 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 at entry=0x28aaaf0,
m=m at entry=0x652760 <Kleo::KeyCache::staticMetaObject>,
local_signal_index=local_signal_index at entry=1, argv=argv at 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 at 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 at 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 at 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 at entry=0x7f67cfb46a80 <Kleo::ListAllKeysJob::staticMetaObject>,
local_signal_index=local_signal_index at entry=0, argv=argv at 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 at 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 at entry=0x2747910, receiver=receiver at entry=0x2a1c950,
e=e at 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 at entry=0x7fff45aba680,
receiver=receiver at entry=0x2a1c950, e=e at 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 at entry=0x2a1c950,
event=event at 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 at entry=0x272c150, event_type=event_type at 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 at entry=0x0, event_type=event_type at 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 at 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 at entry=0x2747c60, block=block at entry=1,
dispatch=dispatch at 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 at 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 at 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

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Kdepim-bugs mailing list