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
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 ()
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!
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
Hmmm there must have been a fix recently? it seems to be working now :/? No more crash!
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
Definitely could have.