Bug 466970 - discover crashes everytime
Summary: discover crashes everytime
Status: RESOLVED DOWNSTREAM
Alias: None
Product: Discover
Classification: Applications
Component: PackageKit (show other bugs)
Version: 5.27.2
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-03-06 20:35 UTC by dahunt
Modified: 2023-03-08 14:44 UTC (History)
3 users (show)

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


Attachments
gdb backtrace (76.72 KB, text/x-log)
2023-03-06 20:35 UTC, dahunt
Details
New crash information added by DrKonqi (6.16 KB, text/plain)
2023-03-08 01:51 UTC, yurapostates
Details

Note You need to log in before you can comment on or make changes to this bug.
Description dahunt 2023-03-06 20:35:12 UTC
Created attachment 157062 [details]
gdb backtrace

SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***


STEPS TO REPRODUCE
1.  Start discover
2. 
3. 

OBSERVED RESULT
Crashes out
$ plasma-discover
kf.newstuff.core: The CustomName property is deprecated and will be removed in KF6
kf.newstuff.core: The CustomName property is deprecated and will be removed in KF6
fetch ratings! false
adding empty sources model QStandardItemModel(0x5615f6aa4cd0)
kf.kirigami: Failed to find a Kirigami platform plugin
no component found for "org.kde.neon.neon"
fwupd: Device not supported: UEFI dbx No releases found: Device only supports version upgrades
fwupd: Device not supported: UEFI dbx
kf.newstuff.core: Could not find category "Cantor (Python 2)"
kf.newstuff.core: Could not find category "Cantor (Python 3)"
kf.newstuff.core: "Error transferring https://autoconfig.kde.org/parley/providers44.xml - server replied: "
KNS error in "Kwordquiz" : KNSCore::ProviderError "Loading of providers from file: https://edu.kde.org/parley/newstuff/providers44.xml failed" QVariant(QString, "https://edu.kde.org/parley/newstuff/providers44.xml")
invalid kns backend! "/usr/share/knsrcfiles/kwordquiz.knsrc" because: "Invalid Kwordquiz backend, contact your distributor."
org.kde.plasma.libdiscover: Discarding invalid backend "kwordquiz.knsrc"
kns error "/usr/share/knsrcfiles/kwordquiz.knsrc" "Invalid Kwordquiz backend, contact your distributor."
kf.newstuff.core: "Error transferring https://autoconfig.kde.org/parley/providers44.xml - server replied: "
KNS error in "Parley" : KNSCore::ProviderError "Loading of providers from file: http://edu.kde.org/parley/newstuff/providers44.xml failed" QVariant(QString, "http://edu.kde.org/parley/newstuff/providers44.xml")
invalid kns backend! "/usr/share/knsrcfiles/parley.knsrc" because: "Invalid Parley backend, contact your distributor."
org.kde.plasma.libdiscover: Discarding invalid backend "parley.knsrc"
org.kde.plasma.libdiscover: last stream isn't over yet Filters(category: Category(0x5615f6ad9ca0, name = "Developer Tools"),) ResourcesProxyModel(0x5615f75c2080)
kns error "/usr/share/knsrcfiles/parley.knsrc" "Invalid Parley backend, contact your distributor."
kf.newstuff.core: "Error transferring https://autoconfig.kde.org/klettres/providers.xml - server replied: "
KNS error in "Klettres" : KNSCore::ProviderError "Loading of providers from file: https://edu.kde.org/klettres/downloads/providers.xml failed" QVariant(QString, "https://edu.kde.org/klettres/downloads/providers.xml")
invalid kns backend! "/usr/share/knsrcfiles/klettres.knsrc" because: "Invalid Klettres backend, contact your distributor."
org.kde.plasma.libdiscover: Discarding invalid backend "klettres.knsrc"
org.kde.plasma.libdiscover: last stream isn't over yet Filters(category: Category(0x5615f6ae01f0, name = "Games"),) ResourcesProxyModel(0x5615f75b47f0)
org.kde.plasma.libdiscover: last stream isn't over yet Filters(category: Category(0x5615f6ad9ca0, name = "Developer Tools"),) ResourcesProxyModel(0x5615f75c2080)
kns error "/usr/share/knsrcfiles/klettres.knsrc" "Invalid Klettres backend, contact your distributor."
kf.newstuff.core: "Error transferring https://autoconfig.kde.org/artikulate/providers.xml - server replied: "
KNS error in "Artikulate" : KNSCore::ProviderError "Loading of providers from file: https://edu.kde.org/artikulate/downloads/providers.xml failed" QVariant(QString, "https://edu.kde.org/artikulate/downloads/providers.xml")
invalid kns backend! "/usr/share/knsrcfiles/artikulate.knsrc" because: "Invalid Artikulate backend, contact your distributor."
org.kde.plasma.libdiscover: Discarding invalid backend "artikulate.knsrc"
org.kde.plasma.libdiscover: last stream isn't over yet Filters(category: Category(0x5615f6ae01f0, name = "Games"),) ResourcesProxyModel(0x5615f75b47f0)
org.kde.plasma.libdiscover: last stream isn't over yet Filters(category: Category(0x5615f6ad9ca0, name = "Developer Tools"),) ResourcesProxyModel(0x5615f75c2080)
kns error "/usr/share/knsrcfiles/artikulate.knsrc" "Invalid Artikulate backend, contact your distributor."
kf.newstuff.core: "Error transferring https://autoconfig.kde.org/marble/providers-4.5.xml - server replied: "
KNS error in "Marble" : KNSCore::ProviderError "Loading of providers from file: http://edu.kde.org/marble/newstuff/providers-4.5.xml failed" QVariant(QString, "http://edu.kde.org/marble/newstuff/providers-4.5.xml")
invalid kns backend! "/usr/share/knsrcfiles/marble.knsrc" because: "Invalid Marble backend, contact your distributor."
org.kde.plasma.libdiscover: Discarding invalid backend "marble.knsrc"
org.kde.plasma.libdiscover: last stream isn't over yet Filters(category: Category(0x5615f6ae01f0, name = "Games"),) ResourcesProxyModel(0x5615f75b47f0)
org.kde.plasma.libdiscover: last stream isn't over yet Filters(category: Category(0x5615f6ad9ca0, name = "Developer Tools"),) ResourcesProxyModel(0x5615f75c2080)
kns error "/usr/share/knsrcfiles/marble.knsrc" "Invalid Marble backend, contact your distributor."
kf.newstuff.core: "Error transferring https://autoconfig.kde.org/step/providers.xml - server replied: "
KNS error in "Step" : KNSCore::ProviderError "Loading of providers from file: http://edu.kde.org/step/downloads/providers.xml failed" QVariant(QString, "http://edu.kde.org/step/downloads/providers.xml")
invalid kns backend! "/usr/share/knsrcfiles/step.knsrc" because: "Invalid Step backend, contact your distributor."
org.kde.plasma.libdiscover: Discarding invalid backend "step.knsrc"
org.kde.plasma.libdiscover: last stream isn't over yet Filters(category: Category(0x5615f6ae01f0, name = "Games"),) ResourcesProxyModel(0x5615f75b47f0)
org.kde.plasma.libdiscover: last stream isn't over yet Filters(category: Category(0x5615f6ad9ca0, name = "Developer Tools"),) ResourcesProxyModel(0x5615f75c2080)
kns error "/usr/share/knsrcfiles/step.knsrc" "Invalid Step backend, contact your distributor."
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = plasma-discover path = /usr/bin pid = 13750
KCrash: Arguments: /usr/bin/plasma-discover 
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi

[1]+  Stopped                 plasma-discover


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
see attached backtrace from gdb
Comment 1 Nate Graham 2023-03-07 19:32:30 UTC
Pasting backtrace inline for searchability:

Thread 1 (Thread 0x7ffff1458b80 (LWP 12589) "plasma-discover"):
#0  0x00007ffff5acec4b in std::__atomic_base<QMutexData*>::compare_exchange_strong(QMutexData*&, QMutexData*, std::memory_order, std::memory_order) (__m2=std::memory_order_acquire, __m1=std::memory_order_acquire, __p2=0x1, __p1=<synthetic pointer>: 0x0, this=0x7fff00008031) at /usr/include/c++/11/bits/atomic_base.h:878
        current = <optimized out>
#1  std::atomic<QMutexData*>::compare_exchange_strong(QMutexData*&, QMutexData*, std::memory_order, std::memory_order) (__m2=std::memory_order_acquire, __m1=std::memory_order_acquire, __p2=0x1, __p1=<synthetic pointer>: 0x0, this=0x7fff00008031) at /usr/include/c++/11/atomic:616
        current = <optimized out>
#2  QAtomicOps<QMutexData*>::testAndSetAcquire<QMutexData*>(std::atomic<QMutexData*>&, QMutexData*, QMutexData*, QMutexData**) (currentValue=<synthetic pointer>, newValue=0x1, expectedValue=0x0, _q_value=<error reading variable: Cannot access memory at address 0x7fff00008031>) at ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:308
        current = <optimized out>
#3  QBasicAtomicPointer<QMutexData>::testAndSetAcquire(QMutexData*, QMutexData*, QMutexData*&) (currentValue=<synthetic pointer>: <optimized out>, newValue=0x1, expectedValue=0x0, this=0x7fff00008031) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:273
        current = <optimized out>
#4  QBasicMutex::fastTryLock(QMutexData*&) (current=<synthetic pointer>: <optimized out>, this=0x7fff00008031) at thread/qmutex.h:128
        current = <optimized out>
#5  QMutex::lock() (this=this@entry=0x7fff00008031) at thread/qmutex.cpp:232
        current = <optimized out>
#6  0x00007ffff5cbe03c in std::unique_lock<QMutex>::lock() (this=<synthetic pointer>) at /usr/include/c++/11/bits/unique_lock.h:131
        locker = {threadData = 0x7fff00008001, locker = {_M_device = 0x0, _M_owns = false}}
        threadData = @0x7fff740ca7b8: {<QBasicAtomicPointer<QThreadData>> = {_q_value = std::atomic<QThreadData *> = { 0x7fff00008001 }}, <No data fields>}
#7  std::unique_lock<QMutex>::unique_lock(QMutex&) (__m=..., this=<synthetic pointer>) at /usr/include/c++/11/bits/unique_lock.h:69
        locker = {threadData = 0x7fff00008001, locker = {_M_device = 0x0, _M_owns = false}}
        threadData = @0x7fff740ca7b8: {<QBasicAtomicPointer<QThreadData>> = {_q_value = std::atomic<QThreadData *> = { 0x7fff00008001 }}, <No data fields>}
#8  (anonymous namespace)::qt_unique_lock<QMutex> (mutex=...) at ../../include/QtCore/5.15.8/QtCore/private/../../../../../src/corelib/thread/qlocking_p.h:106
        locker = {threadData = 0x7fff00008001, locker = {_M_device = 0x0, _M_owns = false}}
        threadData = @0x7fff740ca7b8: {<QBasicAtomicPointer<QThreadData>> = {_q_value = std::atomic<QThreadData *> = { 0x7fff00008001 }}, <No data fields>}
#9  QCoreApplicationPrivate::lockThreadPostEventList(QObject*) (object=<optimized out>) at kernel/qcoreapplication.cpp:1500
        locker = {threadData = 0x7fff00008001, locker = {_M_device = 0x0, _M_owns = false}}
        threadData = @0x7fff740ca7b8: {<QBasicAtomicPointer<QThreadData>> = {_q_value = std::atomic<QThreadData *> = { 0x7fff00008001 }}, <No data fields>}
#10 0x00007ffff5cbf68d in QCoreApplication::postEvent(QObject*, QEvent*, int) (receiver=0x5555573c7480, event=0x55555c0baf10, priority=0) at kernel/qcoreapplication.cpp:1546
        locker = {threadData = 0x7fff00008001, locker = {_M_device = 0x0, _M_owns = false}}
        data = <optimized out>
        eventDeleter = {d = <optimized out>}
        dispatcher = <optimized out>
#11 0x00007fffd813bd64 in  () at /usr/lib/x86_64-linux-gnu/qt5/plugins/discover/packagekit-backend.so
#12 0x00007fffd814011d in  () at /usr/lib/x86_64-linux-gnu/qt5/plugins/discover/packagekit-backend.so
#13 0x00007ffff5ce9ade in QObject::event(QEvent*) (this=0x555555ec10f0, e=0x555559db9af0) at kernel/qobject.cpp:1347
        mce = 0x555559db9af0
        sender = {previous = 0x0, receiver = 0x555555ec10f0, sender = 0x0, signal = -1}
#14 0x00007ffff776c793 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff5cbc07a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555555ec10f0, event=0x555559db9af0) at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x555555ec10f0, 0x555559db9af0, 0x7fffffffd41f}
        d = <optimized out>
        threadData = 0x5555555ebc00
        scopeLevelCounter = {threadData = 0x5555555ebc00}
#16 0x00007ffff5cbf167 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x5555555ebc00) at kernel/qcoreapplication.cpp:1821
        e = 0x555559db9af0
        pe = <optimized out>
        r = <optimized out>
        relocker = {m_func = {__locker = @0x7fffffffd4a0}, m_invoke = true}
        event_deleter = {d = 0x555559db9af0}
        locker = {_M_device = 0x5555555ebc30, _M_owns = false}
        startOffset = 0
        i = @0x5555555ebc24: 3591
        cleanup = {receiver = 0x0, event_type = 0, data = 0x5555555ebc00, exceptionCaught = true}
#17 0x00007ffff5d16487 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55555579a380) at kernel/qeventdispatcher_glib.cpp:277
        source = 0x55555579a380
#18 0x00007ffff45c7d3b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff461c6c8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff45c53e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007ffff5d15ad8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55555579ed50, flags=...) at kernel/qeventdispatcher_glib.cpp:423
        d = 0x555555797e00
        canWait = <optimized out>
        savedFlags = {i = 0}
        result = <optimized out>
#22 0x00007ffff5cba99b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffd700, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
        d = 0x555555d6aed0
        threadData = <optimized out>
        locker = {val = 93824992854376}
        app = <optimized out>
#23 0x00007ffff5cc2f34 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
        threadData = 0x5555555ebc00
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff5f5c8c8 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff5e8c8c0 <qt_meta_stringdata_QObject>, data = 0x7ffff5e8c7a0 <qt_meta_data_QObject>, static_metacall = 0x7ffff5cf27d0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x555555d6aed0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff5e8f860 <qt_meta_stringdata_Qt>, data = 0x7ffff5e8c9e0 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff5f54140 <QObject::staticMetaObject>}, stringdata = 0x7ffff5e87040 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff5e86fe0 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff5cba6b0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#24 0x000055555556dc63 in  ()
#25 0x00007ffff5229d90 in __libc_start_call_main (main=main@entry=0x55555556d340, argc=argc@entry=1, argv=argv@entry=0x7fffffffd9e8) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 5435406132488649264, 140737488345576, 93824992334656, 93824992605560, 140737354125376, -5435406131378439632, -5435392501412447696}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x5555555b3008, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1432039432}}}
        not_first_call = <optimized out>
#26 0x00007ffff5229e40 in __libc_start_main_impl (main=0x55555556d340, argc=1, argv=0x7fffffffd9e8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd9d8) at ../csu/libc-start.c:392
#27 0x000055555556e6a5 in  ()
Comment 2 Nate Graham 2023-03-07 19:33:27 UTC
Unfortunately the two lines we need debug symbols for don't have them:

> #11 0x00007fffd813bd64 in  () at /usr/lib/x86_64-linux-gnu/qt5/plugins/discover/packagekit-backend.so
> #12 0x00007fffd814011d in  () at /usr/lib/x86_64-linux-gnu/qt5/plugins/discover/packagekit-backend.so

Could you install debug symbols for Discover's PackageKit backend and get a new backtrace? Thanks a lot!
Comment 3 yurapostates 2023-03-08 01:51:47 UTC
Created attachment 157098 [details]
New crash information added by DrKonqi

plasma-discover (5.27.2) using Qt 5.15.8

Here's my backtrace from similar crash. It happens literally everytime I launch Discover from the taskbar, yet for some reason when I launched Discover from the "Updates available" notification icon it didn't crash.

-- Backtrace (Reduced):
#6  0x00007f38ef4dfccb in std::__atomic_base<QMutexData*>::compare_exchange_strong(QMutexData*&, QMutexData*, std::memory_order, std::memory_order) (__m2=std::memory_order_acquire, __m1=std::memory_order_acquire, __p2=0x1, __p1=<synthetic pointer>: <optimized out>, this=0x2825042b48643854) at /usr/include/c++/12.2.1/atomic:623
#7  std::atomic<QMutexData*>::compare_exchange_strong(QMutexData*&, QMutexData*, std::memory_order, std::memory_order) (__p2=0x1, __m1=std::memory_order_acquire, __m2=std::memory_order_acquire, __p1=<synthetic pointer>: <optimized out>, this=0x2825042b48643854) at /usr/include/c++/12.2.1/atomic:625
#8  QAtomicOps<QMutexData*>::testAndSetAcquire<QMutexData*>(std::atomic<QMutexData*>&, QMutexData*, QMutexData*, QMutexData**) (currentValue=<synthetic pointer>, newValue=0x1, expectedValue=0x0, _q_value=<error reading variable: Cannot access memory at address 0x2825042b48643854>, _q_value=<optimized out>, expectedValue=<optimized out>, newValue=<optimized out>, currentValue=<optimized out>) at ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:308
#9  QBasicAtomicPointer<QMutexData>::testAndSetAcquire(QMutexData*, QMutexData*, QMutexData*&) (currentValue=<synthetic pointer>: <optimized out>, newValue=0x1, expectedValue=0x0, this=0x2825042b48643854) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:273
#10 QBasicMutex::fastTryLock(QMutexData*&) (current=<synthetic pointer>: <optimized out>, this=0x2825042b48643854) at thread/qmutex.h:128
Comment 4 dahunt 2023-03-08 13:27:32 UTC
Hmmm there must have been a fix recently? it seems to be working now :/?   No more crash!
Comment 5 yurapostates 2023-03-08 14:06:24 UTC
Me too. Today I haven't been able to reproduce the bug. Not sure why, maybe I updated something on my system yesterday that fixed the issue and the bug only existed because I didn't reboot. Looking at the pacman logs (Arch Linux) the only significant upgrade I did was systemd from 253.1-1 -> 253.1-2. The upgrade is described as "fix packaging of pkgconfig files" so maybe that caused the issue? https://github.com/archlinux/svntogit-packages/commit/05c3bbbbc81558d53cb4d57c9ab59ca688376726
Comment 6 Nate Graham 2023-03-08 14:44:46 UTC
Definitely could have.