Summary: | Running and canceling parallel running jobs causes crashes | ||
---|---|---|---|
Product: | [Applications] kdepim | Reporter: | András Manţia <amantia> |
Component: | libkleo | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | mfranz, mutz |
Priority: | NOR | ||
Version: | 4.5 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
András Manţia
2009-09-24 08:39:50 UTC
Yes, I see this as well. This is a regression introduced by the async reader work. It works in e35, but fails in e4 and in trunk. Marc, please have a look at this. If this can't be fixed, I guess I have to disable async mode again before the 4.4 release :( kontact aborts several times every day here because of this nasty bug. SVN commit 1032801 by tmcguire: Disable async reader mode, because of the frequent crashes that happen here. CCBUG: 208353 M +3 -1 objecttreeparser.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1032801 SVN commit 1066655 by tmcguire: Finally, a unit test which actually crashes :) Randomly killing jobs seems to trigger the bug. CCBUG: 208353 M +50 -25 test_verify.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1066655 Interesting observation: The problem only happens when canceling jobs. Also interesting, but probably unrelated to this bug, is that testParallelVerifyAndKeyListJobs() fails as well when the number of parallel jobs is too high, try increasing from 10 to 500. Valgrind output: ==28997== Thread 3: ==28997== Invalid read of size 8 ==28997== at 0x74F249F: start (rungpg.c:1331) ==28997== by 0x74E9536: gpgme_op_verify (verify.c:809) ==28997== by 0x7280514: GpgME::Context::verifyDetachedSignature(GpgME::Data const&, GpgME::Data const&) (context.cpp:762) ==28997== by 0x4F2A080: verify_detached_qba(GpgME::Context*, QByteArray const&, QByteArray const&) (qgpgmeverifydetachedjob.cpp:86) ==28997== by 0x4F2B1B2: boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> >::operator()<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list1<GpgME::Context*&> >(boost::_bi::type<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*&)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list1<GpgME::Context*&>&, long) (bind.hpp:361) ==28997== by 0x4F2B20D: boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > >::operator()<GpgME::Context*>(GpgME::Context*&) (bind_template.hpp:32) ==28997== by 0x4F2B26A: boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> boost::_bi::list1<boost::_bi::value<GpgME::Context*> >::operator()<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > >, boost::_bi::list0>(boost::_bi::type<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > >&, boost::_bi::list0&, long) (bind.hpp:222) ==28997== by 0x4F2B2B9: boost::_bi::bind_t<boost::_bi::unspecified, boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > >, boost::_bi::list1<boost::_bi::value<GpgME::Context*> > >::operator()() (bind_template.hpp:20) ==28997== by 0x4F2B2ED: boost::detail::function::function_obj_invoker0<boost::_bi::bind_t<boost::_bi::unspecified, boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > >, boost::_bi::list1<boost::_bi::value<GpgME::Context*> > >, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::invoke(boost::detail::function::function_buffer&) (function_template.hpp:123) ==28997== by 0x4F2DB01: boost::function0<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::operator()() const (function_template.hpp:815) ==28997== by 0x4F2DB44: Kleo::_detail::Thread<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::run() (threadedjobmixin.h:103) ==28997== by 0x54CC719: QThreadPrivate::start(void*) (qthread_unix.cpp:244) ==28997== by 0x597906F: start_thread (in /lib64/libpthread-2.9.so) ==28997== by 0x83F811C: clone (in /lib64/libc-2.9.so) ==28997== Address 0x0 is not stack'd, malloc'd or (recently) free'd QFATAL : VerifyTest::testMixedParallelJobs() Received signal 11 QFATAL : VerifyTest::testMixedParallelJobs() Received signal 11 FAIL! : VerifyTest::testMixedParallelJobs() Received a fatal error. Helgrind output: ==29248== Thread #34 was created ==29248== at 0x83FB0DE: clone (in /lib64/libc-2.9.so) ==29248== by 0x597B3F4: do_clone (in /lib64/libpthread-2.9.so) ==29248== by 0x597BA80: pthread_create@@GLIBC_2.2.5 (in /lib64/libpthread-2.9.so) ==29248== by 0x4C29A34: pthread_create@* (in /usr/lib64/valgrind/amd64-linux/vgpreload_helgrind.so) ==29248== by 0x54CEE6F: QThread::start(QThread::Priority) (qthread_unix.cpp:538) ==29248== by 0x4F30240: void Kleo::_detail::ThreadedJobMixin<Kleo::VerifyDetachedJob, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::run<boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > > >(boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > > const&) (threadedjobmixin.h:153) ==29248== by 0x4F2CF2F: Kleo::QGpgMEVerifyDetachedJob::start(QByteArray const&, QByteArray const&) (qgpgmeverifydetachedjob.cpp:95) ==29248== by 0x405F89: VerifyTest::startAnotherJob() (test_verify.cpp:111) ==29248== by 0x4033A3: VerifyTest::qt_metacall(QMetaObject::Call, int, void**) (test_verify.moc:86) ==29248== by 0x5601782: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (qmetaobject.cpp:237) ==29248== by 0x5616A8E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3399) ==29248== by 0x5620665: QSingleShotTimer::timeout() (qtimer.moc:82) ==29248== by 0x56207A6: QSingleShotTimer::timerEvent(QTimerEvent*) (qtimer.cpp:308) ==29248== by 0x56111CD: QObject::event(QEvent*) (qobject.cpp:1210) ==29248== by 0x5DAD94E: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4245) ==29248== by 0x5DADDAB: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3669) ==29248== by 0x55F99C8: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==29248== by 0x55FED1E: QCoreApplication::sendEvent(QObject*, QEvent*) (qcoreapplication.h:215) ==29248== by 0x5638D6E: QTimerInfoList::activateTimers() (qeventdispatcher_unix.cpp:603) ==29248== by 0x5636446: timerSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:184) ==29248== by 0x5636480: idleTimerSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:231) ==29248== by 0xAC230FA: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.1800.2) ==29248== by 0xAC268CC: (within /usr/lib64/libglib-2.0.so.0.1800.2) ==29248== by 0xAC26A8A: g_main_context_iteration (in /usr/lib64/libglib-2.0.so.0.1800.2) ==29248== by 0x5635168: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:407) ==29248== by 0x55F5E42: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==29248== by 0x55F6066: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==29248== by 0x4084A4: VerifyTest::testMixedParallelJobs() (test_verify.cpp:188) ==29248== by 0x4033CF: VerifyTest::qt_metacall(QMetaObject::Call, int, void**) (test_verify.moc:90) ==29248== by 0x5601782: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (qmetaobject.cpp:237) ==29248== by 0x5605413: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1533) ==29248== by 0x5605CA5: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1113) ==29248== by 0x5214B32: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qobjectdefs.h:396) ==29248== by 0x520F2CB: QTest::qInvokeTestMethodDataEntry(char*) (qtestcase.cpp:1213) ==29248== by 0x521064A: QTest::qInvokeTestMethod(char const*, char const*) (qtestcase.cpp:1308) ==29248== by 0x5210E45: QTest::qInvokeTestMethods(QObject*) (qtestcase.cpp:1463) ==29248== by 0x5211EF7: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1666) ==29248== by 0x403C2E: main (test_verify.cpp:192) ==29248== ==29248== Thread #34: Exiting thread still holds 1 lock ==29248== at 0x83CA098: _Exit (in /lib64/libc-2.9.so) ==29248== by 0x74FB741: _gpgme_io_spawn (posix-io.c:349) ==29248== by 0x74F5413: start (rungpg.c:1305) ==29248== by 0x74EC536: gpgme_op_verify (verify.c:809) ==29248== by 0x7283514: GpgME::Context::verifyDetachedSignature(GpgME::Data const&, GpgME::Data const&) (context.cpp:762) ==29248== by 0x4F2D080: verify_detached_qba(GpgME::Context*, QByteArray const&, QByteArray const&) (qgpgmeverifydetachedjob.cpp:86) ==29248== by 0x4F2E1B2: boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> >::operator()<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list1<GpgME::Context*&> >(boost::_bi::type<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*&)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list1<GpgME::Context*&>&, long) (bind.hpp:361) ==29248== by 0x4F2E20D: boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > >::operator()<GpgME::Context*>(GpgME::Context*&) (bind_template.hpp:32) ==29248== by 0x4F2E26A: boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> boost::_bi::list1<boost::_bi::value<GpgME::Context*> >::operator()<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QKilled ByteArray> > >, boost::_bi::list0>(boost::_bi::type<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > >&, boost::_bi::list0&, long) (bind.hpp:222) ==29248== by 0x4F2E2B9: boost::_bi::bind_t<boost::_bi::unspecified, boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > >, boost::_bi::list1<boost::_bi::value<GpgME::Context*> > >::operator()() (bind_template.hpp:20) ==29248== by 0x4F2E2ED: boost::detail::function::function_obj_invoker0<boost::_bi::bind_t<boost::_bi::unspecified, boost::_bi::bind_t<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> (*)(GpgME::Context*, QByteArray const&, QByteArray const&), boost::_bi::list3<boost::arg<1>, boost::_bi::value<QByteArray>, boost::_bi::value<QByteArray> > >, boost::_bi::list1<boost::_bi::value<GpgME::Context*> > >, boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::invoke(boost::detail::function::function_buffer&) (function_template.hpp:123) ==29248== by 0x4F30B01: boost::function0<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::operator()() const (function_template.hpp:815) ==29248== by 0x4F30B44: Kleo::_detail::Thread<boost::tuples::tuple<GpgME::VerificationResult, QString, GpgME::Error, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::run() (threadedjobmixin.h:103) ==29248== by 0x54CF719: QThreadPrivate::start(void*) (qthread_unix.cpp:244) ==29248== by 0x4C29B5F: mythread_wrapper (in /usr/lib64/valgrind/amd64-linux/vgpreload_helgrind.so) ==29248== by 0x597C06F: start_thread (in /lib64/libpthread-2.9.so) SVN commit 1098056 by tmcguire: Allow async mode again, as we now require a gpgme version that doesn't crash. BUG: 208353 M +1 -2 viewer_p.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1098056 |