https://bugs.kde.org/show_bug.cgi?id=437287
Bug ID: 437287 Summary: Discover crashes in Attica::KdePlatformDependent::getAccessToken when no id token is available Product: frameworks-attica Version: unspecified Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: general Assignee: gladh...@kde.org Reporter: n...@kde.org Target Milestone: --- See Bug 437282 for the background conditions. I opened Discover, navigated to an app page (Can't remember which one) and left the computer for a while. When I returned, Discover had crashed. Here is the terrifying backtrace: #0 0x00007f7a42faa664 in std::__atomic_base<int>::load (__m=std::memory_order_relaxed, this=<optimized out>) at /usr/include/c++/10/bits/atomic_base.h:426 426 return __atomic_load_n(&_M_i, int(__m)); [Current thread is 1 (Thread 0x7f7a79324340 (LWP 16890))] (gdb) bt #0 0x00007f7a42faa664 in std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=<optimized out>) at /usr/include/c++/10/bits/atomic_base.h:426 #1 QAtomicOps<int>::loadRelaxed<int>(std::atomic<int> const&) (_q_value=<optimized out>) at /usr/include/qt5/QtCore/qatomic_cxx11.h:239 #2 QBasicAtomicInteger<int>::loadRelaxed() const (this=<optimized out>) at /usr/include/qt5/QtCore/qbasicatomic.h:107 #3 QtPrivate::RefCount::isShared() const (this=<optimized out>) at /usr/include/qt5/QtCore/qrefcount.h:101 #4 QHash<QString, QSharedPointer<KNSCore::Provider> >::detach() (this=0x1e2c0a0) at /usr/include/qt5/QtCore/qhash.h:291 #5 QHash<QString, QSharedPointer<KNSCore::Provider> >::insert(QString const&, QSharedPointer<KNSCore::Provider> const&) (this=this@entry=0x1e2c0a0, akey=..., avalue=...) at /usr/include/qt5/QtCore/qhash.h:770 #6 0x00007f7a42fa2d90 in KNSCore::Engine::addProvider(QSharedPointer<KNSCore::Provider>) (this=this@entry=0x1e2c060, provider=...) at /home/nate/kde/src/knewstuff/src/core/engine.cpp:402 #7 0x00007f7a42fa346b in KNSCore::Engine::slotProviderFileLoaded(QDomDocument const&) (this=0x1e2c060, doc=<optimized out>) at /home/nate/kde/src/knewstuff/src/core/engine.cpp:375 #8 0x00007f7a7c088c17 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdbb91d450, r=0x1e2c060, this=0x1e31d30) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #9 doActivate<false>(QObject*, int, void**) (sender=0x25664d0, signal_index=3, argv=argv@entry=0x7ffdbb91d450) at kernel/qobject.cpp:3886 #10 0x00007f7a7c081f60 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x25664d0, m=m@entry=0x7f7a42ffb0a0 <KNSCore::XmlLoader::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdbb91d450) at kernel/qobject.cpp:3946 #11 0x00007f7a42f90102 in KNSCore::XmlLoader::signalLoaded(QDomDocument const&) (this=this@entry=0x25664d0, _t1=...) at /home/nate/kde/build/knewstuff/src/core/KF5NewStuffCore_autogen/EWIEGA46WW/moc_xmlloader.cpp:169 #12 0x00007f7a42fc736d in KNSCore::XmlLoader::slotJobResult(KJob*) (this=0x25664d0, job=<optimized out>) at /home/nate/kde/src/knewstuff/src/core/xmlloader.cpp:62 #13 0x00007f7a7c088c17 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdbb91d5e0, r=0x25664d0, this=0x16d7e30) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #14 doActivate<false>(QObject*, int, void**) (sender=0x1855a00, signal_index=6, argv=argv@entry=0x7ffdbb91d5e0) at kernel/qobject.cpp:3886 #15 0x00007f7a7c081f60 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x1855a00, m=m@entry=0x7f7a7d167540 <KJob::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7ffdbb91d5e0) at kernel/qobject.cpp:3946 #16 0x00007f7a7d10a94c in KJob::result(KJob*, KJob::QPrivateSignal) (this=this@entry=0x1855a00, _t1=<optimized out>, _t1@entry=0x1855a00, _t2=...) at /home/nate/kde/build/kcoreaddons/src/lib/KF5CoreAddons_autogen/include/moc_kjob.cpp:636 #17 0x00007f7a7d10b4d3 in KJob::finishJob(bool) (this=0x1855a00, emitResult=<optimized out>) at /home/nate/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:97 #18 0x00007f7a7c088c17 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdbb91d6c0, r=0x1855a00, this=0x4216260) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #19 doActivate<false>(QObject*, int, void**) (sender=0x3d42630, signal_index=5, argv=0x7ffdbb91d6c0, argv@entry=0x0) at kernel/qobject.cpp:3886 #20 0x00007f7a7c081f60 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x3d42630, m=m@entry=0x7f7a42ffb260 <KNSCore::HTTPWorker::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x0) at kernel/qobject.cpp:3946 #21 0x00007f7a42f8f5c3 in KNSCore::HTTPWorker::completed() (this=this@entry=0x3d42630) at /home/nate/kde/build/knewstuff/src/core/KF5NewStuffCore_autogen/AJN4HOEG3V/moc_httpworker.cpp:198 #22 0x00007f7a42fca0b4 in KNSCore::HTTPWorker::handleFinished() (this=0x3d42630) at /home/nate/kde/src/knewstuff/src/core/jobs/httpworker.cpp:159 #23 0x00007f7a7c088c17 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdbb91d860, r=0x3d42630, this=0x1682270) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #24 doActivate<false>(QObject*, int, void**) (sender=0x3d36490, signal_index=10, argv=0x7ffdbb91d860, argv@entry=0x0) at kernel/qobject.cpp:3886 #25 0x00007f7a7c081f60 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x3d36490, m=m@entry=0x7f7a7cc1e760 <QNetworkReply::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3946 #26 0x00007f7a7cbbd693 in QNetworkReply::finished() (this=this@entry=0x3d36490) at .moc/moc_qnetworkreply.cpp:404 #27 0x00007f7a7cb30858 in QNetworkReplyHttpImplPrivate::finished() (this=0x28579a0) at access/qnetworkreplyhttpimpl.cpp:2270 #28 0x00007f7a7c07ea2c in QObject::event(QEvent*) (this=0x3d36490, e=0x7f79cc071d70) at kernel/qobject.cpp:1314 #29 0x00007f7a7d31faff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x3d36490, e=0x7f79cc071d70) at kernel/qapplication.cpp:3632 #30 0x00007f7a7c05213a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x3d36490, event=0x7f79cc071d70) at kernel/qcoreapplication.cpp:1063 #31 0x00007f7a7c0550b1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0xca4ec0) at kernel/qcoreapplication.cpp:1817 #32 0x00007f7a7c0aa6b3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0xdbebc0) at kernel/qeventdispatcher_glib.cpp:277 #33 0x00007f7a7a5d48b7 in g_main_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:3337 #34 g_main_context_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:4055 #35 0x00007f7a7a5d4c38 in g_main_context_iterate (context=context@entry=0x7f7a70005000, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #36 0x00007f7a7a5d4cef in g_main_context_iteration (context=0x7f7a70005000, may_block=0) at ../glib/gmain.c:4196 #37 0x00007f7a7c0a9da1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xdb1e60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #38 0x00007f7a48096e97 in Attica::KdePlatformDependent::getAccessToken(QUrl const&) const (this=this@entry=0x16fed40) at /usr/include/qt5/QtCore/qflags.h:121 #39 0x00007f7a48097651 in Attica::KdePlatformDependent::addOAuthToRequest(QNetworkRequest const&) (this=this@entry=0x16fed40, request=...) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:136 #40 0x00007f7a48098146 in Attica::KdePlatformDependent::get(QNetworkRequest const&) (this=0x16fed40, request=<optimized out>) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:157 #41 0x00007f7a7b706615 in Attica::BaseJob::doWork() (this=0x46c8df0) at /home/nate/kde/src/attica/src/atticabasejob.cpp:130 #42 0x00007f7a7c07ea2c in QObject::event(QEvent*) (this=0x46c8df0, e=0x46f5c30) at kernel/qobject.cpp:1314 #43 0x00007f7a7d31faff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x46c8df0, e=0x46f5c30) at kernel/qapplication.cpp:3632 #44 0x00007f7a7c05213a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x46c8df0, event=0x46f5c30) at kernel/qcoreapplication.cpp:1063 #45 0x00007f7a7c0550b1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0xca4ec0) at kernel/qcoreapplication.cpp:1817 #46 0x00007f7a7c0aa6b3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0xdbebc0) at kernel/qeventdispatcher_glib.cpp:277 #47 0x00007f7a7a5d48b7 in g_main_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:3337 #48 g_main_context_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:4055 #49 0x00007f7a7a5d4c38 in g_main_context_iterate (context=context@entry=0x7f7a70005000, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #50 0x00007f7a7a5d4cef in g_main_context_iteration (context=0x7f7a70005000, may_block=0) at ../glib/gmain.c:4196 #51 0x00007f7a7c0a9da1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xdb1e60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #52 0x00007f7a48096e97 in Attica::KdePlatformDependent::getAccessToken(QUrl const&) const (this=this@entry=0x16fed40) at /usr/include/qt5/QtCore/qflags.h:121 #53 0x00007f7a48097651 in Attica::KdePlatformDependent::addOAuthToRequest(QNetworkRequest const&) (this=this@entry=0x16fed40, request=...) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:136 #54 0x00007f7a48098146 in Attica::KdePlatformDependent::get(QNetworkRequest const&) (this=0x16fed40, request=<optimized out>) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:157 #55 0x00007f7a7b706615 in Attica::BaseJob::doWork() (this=0x43d2800) at /home/nate/kde/src/attica/src/atticabasejob.cpp:130 #56 0x00007f7a7c07ea2c in QObject::event(QEvent*) (this=0x43d2800, e=0x46f5db0) at kernel/qobject.cpp:1314 #57 0x00007f7a7d31faff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x43d2800, e=0x46f5db0) at kernel/qapplication.cpp:3632 #58 0x00007f7a7c05213a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x43d2800, event=0x46f5db0) at kernel/qcoreapplication.cpp:1063 #59 0x00007f7a7c0550b1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0xca4ec0) at kernel/qcoreapplication.cpp:1817 #60 0x00007f7a7c0aa6b3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0xdbebc0) at kernel/qeventdispatcher_glib.cpp:277 #61 0x00007f7a7a5d48b7 in g_main_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:3337 #62 g_main_context_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:4055 #63 0x00007f7a7a5d4c38 in g_main_context_iterate (context=context@entry=0x7f7a70005000, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #64 0x00007f7a7a5d4cef in g_main_context_iteration (context=0x7f7a70005000, may_block=0) at ../glib/gmain.c:4196 #65 0x00007f7a7c0a9da1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xdb1e60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #66 0x00007f7a48096e97 in Attica::KdePlatformDependent::getAccessToken(QUrl const&) const (this=this@entry=0x16fed40) at /usr/include/qt5/QtCore/qflags.h:121 #67 0x00007f7a48097651 in Attica::KdePlatformDependent::addOAuthToRequest(QNetworkRequest const&) (this=this@entry=0x16fed40, request=...) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:136 #68 0x00007f7a48098146 in Attica::KdePlatformDependent::get(QNetworkRequest const&) (this=0x16fed40, request=<optimized out>) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:157 #69 0x00007f7a7b706615 in Attica::BaseJob::doWork() (this=0x1e33b50) at /home/nate/kde/src/attica/src/atticabasejob.cpp:130 #70 0x00007f7a7c07ea2c in QObject::event(QEvent*) (this=0x1e33b50, e=0x46f5920) at kernel/qobject.cpp:1314 #71 0x00007f7a7d31faff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x1e33b50, e=0x46f5920) at kernel/qapplication.cpp:3632 #72 0x00007f7a7c05213a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x1e33b50, event=0x46f5920) at kernel/qcoreapplication.cpp:1063 #73 0x00007f7a7c0550b1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0xca4ec0) at kernel/qcoreapplication.cpp:1817 #74 0x00007f7a7c0aa6b3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0xdbebc0) at kernel/qeventdispatcher_glib.cpp:277 #75 0x00007f7a7a5d48b7 in g_main_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:3337 #76 g_main_context_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:4055 #77 0x00007f7a7a5d4c38 in g_main_context_iterate (context=context@entry=0x7f7a70005000, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #78 0x00007f7a7a5d4cef in g_main_context_iteration (context=0x7f7a70005000, may_block=0) at ../glib/gmain.c:4196 #79 0x00007f7a7c0a9da1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xdb1e60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #80 0x00007f7a48096e97 in Attica::KdePlatformDependent::getAccessToken(QUrl const&) const (this=this@entry=0x16fed40) at /usr/include/qt5/QtCore/qflags.h:121 #81 0x00007f7a48097651 in Attica::KdePlatformDependent::addOAuthToRequest(QNetworkRequest const&) (this=this@entry=0x16fed40, request=...) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:136 #82 0x00007f7a48098146 in Attica::KdePlatformDependent::get(QNetworkRequest const&) (this=0x16fed40, request=<optimized out>) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:157 #83 0x00007f7a7b706615 in Attica::BaseJob::doWork() (this=0x46cf1b0) at /home/nate/kde/src/attica/src/atticabasejob.cpp:130 #84 0x00007f7a7c07ea2c in QObject::event(QEvent*) (this=0x46cf1b0, e=0x46f5cb0) at kernel/qobject.cpp:1314 #85 0x00007f7a7d31faff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x46cf1b0, e=0x46f5cb0) at kernel/qapplication.cpp:3632 #86 0x00007f7a7c05213a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x46cf1b0, event=0x46f5cb0) at kernel/qcoreapplication.cpp:1063 #87 0x00007f7a7c0550b1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0xca4ec0) at kernel/qcoreapplication.cpp:1817 #88 0x00007f7a7c0aa6b3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0xdbebc0) at kernel/qeventdispatcher_glib.cpp:277 #89 0x00007f7a7a5d48b7 in g_main_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:3337 #90 g_main_context_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:4055 #91 0x00007f7a7a5d4c38 in g_main_context_iterate (context=context@entry=0x7f7a70005000, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #92 0x00007f7a7a5d4cef in g_main_context_iteration (context=0x7f7a70005000, may_block=0) at ../glib/gmain.c:4196 #93 0x00007f7a7c0a9da1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xdb1e60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #94 0x00007f7a48096e97 in Attica::KdePlatformDependent::getAccessToken(QUrl const&) const (this=this@entry=0x16fed40) at /usr/include/qt5/QtCore/qflags.h:121 #95 0x00007f7a48097651 in Attica::KdePlatformDependent::addOAuthToRequest(QNetworkRequest const&) (this=this@entry=0x16fed40, request=...) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:136 #96 0x00007f7a48098146 in Attica::KdePlatformDependent::get(QNetworkRequest const&) (this=0x16fed40, request=<optimized out>) at /home/nate/kde/src/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:157 #97 0x00007f7a7b706615 in Attica::BaseJob::doWork() (this=0x16b4700) at /home/nate/kde/src/attica/src/atticabasejob.cpp:130 #98 0x00007f7a7c07ea2c in QObject::event(QEvent*) (this=0x16b4700, e=0x16930b0) at kernel/qobject.cpp:1314 #99 0x00007f7a7d31faff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x16b4700, e=0x16930b0) at kernel/qapplication.cpp:3632 #100 0x00007f7a7c05213a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x16b4700, event=0x16930b0) at kernel/qcoreapplication.cpp:1063 #101 0x00007f7a7c0550b1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0xca4ec0) at kernel/qcoreapplication.cpp:1817 #102 0x00007f7a7c0aa6b3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0xdbebc0) at kernel/qeventdispatcher_glib.cpp:277 #103 0x00007f7a7a5d48b7 in g_main_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:3337 #104 g_main_context_dispatch (context=0x7f7a70005000) at ../glib/gmain.c:4055 #105 0x00007f7a7a5d4c38 in g_main_context_iterate (context=context@entry=0x7f7a70005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #106 0x00007f7a7a5d4cef in g_main_context_iteration (context=0x7f7a70005000, may_block=may_block@entry=1) at ../glib/gmain.c:4196 #107 0x00007f7a7c0a9d30 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xdb1e60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #108 0x00007f7a7c050b7b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffdbb91f5e0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #109 0x00007f7a7c058db0 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #110 0x00007f7a7c4b3a9c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867 #111 0x00007f7a7d31fa75 in QApplication::exec() () at kernel/qapplication.cpp:2824 #112 0x0000000000415f37 in main(int, char**) (argc=<optimized out>, argv=0x7ffdbb91f6e0) at /home/nate/kde/src/discover/discover/main.cpp:196 -- You are receiving this mail because: You are watching all bug changes.