| Summary: | plasmawindowed 5.91.0 crashed sometimes when closing | ||
|---|---|---|---|
| Product: | [Plasma] Plasma SDK | Reporter: | Matt Fagnani <matt.fagnani> |
| Component: | plasmoidviewer | Assignee: | Plasma Bugs List <plasma-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | agurenko, giorgos.tsiapaliokas, kdedev, nate |
| Priority: | NOR | Keywords: | qt6 |
| Version First Reported In: | 5.91.0 | ||
| Target Milestone: | --- | ||
| Platform: | Fedora RPMs | ||
| OS: | Linux | ||
| See Also: | https://bugs.kde.org/show_bug.cgi?id=478893 | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
Valgrind log with plasmawindowed org.kde.plasma.kickoff
Full trace of all threads of plasmawindowed crash when closing Full trace of all threads of plasmawindowed crash in QObject::parent |
||
|
Description
Matt Fagnani
2023-12-24 15:29:19 UTC
Created attachment 164427 [details]
Full trace of all threads of plasmawindowed crash when closing
Created attachment 164433 [details]
Full trace of all threads of plasmawindowed crash in QObject::parent
plasmawindowed org.kde.plasma.kickoff crashed when closing with a different trace in QObject::parent. The crash might've been a null pointer dereference since QObject::parent had this=0x0.
Core was generated by `plasmawindowed org.kde.plasma.kickoff'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 QObject::parent (this=0x0) at /usr/include/qt6/QtCore/qscopedpointer.h:90
Downloading source file /usr/include/qt6/QtCore/qscopedpointer.h
90 T *operator->() const noexcept
[Current thread is 1 (Thread 0x7fbed19f9b80 (LWP 13870))]
Missing separate debuginfos, use: dnf debuginfo-install plasma-workspace-5.91.0-2.fc40.x86_64
(gdb) bt
#0 QObject::parent (this=0x0) at /usr/include/qt6/QtCore/qscopedpointer.h:90
#1 Plasma::Applet::containment (this=<optimized out>)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasma/applet.cpp:733
#2 0x00007fbed3210af3 in Plasma::AppletPrivate::mainConfigGroup (this=0x5603941b7b40)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasma/private/applet_p.cpp:514
#3 0x00007fbed31eeea5 in Plasma::AppletPrivate::mainConfigGroup (this=<optimized out>)
at /usr/include/qt6/QtCore/qarraydatapointer.h:413
#4 Plasma::Applet::config (this=0x5603941ac5b0)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasma/applet.cpp:205
#5 0x00007fbed3273f8f in PlasmaQuick::AppletQuickItem::~AppletQuickItem (this=<optimized out>, this=<optimized out>)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasmaquick/appletquickitem.cpp:459
#6 0x00007fbed32750e2 in PlasmoidItem::~PlasmoidItem (this=<optimized out>, this=<optimized out>)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasmaquick/plasmoid/plasmoiditem.cpp:46
#7 QQmlPrivate::QQmlElement<PlasmoidItem>::~QQmlElement (this=<optimized out>, this=<optimized out>)
at /usr/include/qt6/QtQml/qqmlprivate.h:99
#8 QQmlPrivate::QQmlElement<PlasmoidItem>::~QQmlElement (this=<optimized out>, this=<optimized out>)
at /usr/include/qt6/QtQml/qqmlprivate.h:99
#9 0x00007fbed328e5d0 in PlasmaQuick::SharedQmlEngine::~SharedQmlEngine (this=<optimized out>, this=<optimized out>)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasmaquick/sharedqmlengine.cpp:153
#10 0x00007fbed328e685 in PlasmaQuick::SharedQmlEngine::~SharedQmlEngine (this=<optimized out>, this=<optimized out>)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasmaquick/sharedqmlengine.cpp:155
#11 0x00007fbed09fa92d in QObjectPrivate::deleteChildren (this=this@entry=0x5603941ade50)
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/kernel/qobject.cpp:2206
#12 0x00007fbed09fef68 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>)
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/kernel/qobject.cpp:1159
#13 0x00007fbed31ea135 in Plasma::Applet::~Applet (this=<optimized out>, this=<optimized out>)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasma/applet.cpp:90
#14 0x00007fbed09f3629 in QObject::event (this=0x5603941ac5b0, e=0x7fbe7cf5e620)
--Type <RET> for more, q to quit, c to continue without paging--c
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/kernel/qobject.cpp:1424
#15 0x00007fbed1bc3168 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5603941ac5b0,
e=0x7fbe7cf5e620) at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3296
#16 0x00007fbed09a0e08 in QCoreApplication::notifyInternal2 (receiver=0x5603941ac5b0, event=0x7fbe7cf5e620)
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1121
#17 0x00007fbed09a100d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>)
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1539
#18 0x00007fbed09a4d05 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x560393dceb60)
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1901
#19 0x00007fbed09a507d in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>)
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1760
#20 0x00007fbed0c6daef in postEventSourceDispatch (s=0x560393e5c8e0)
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#21 0x00007fbecf614e5c in g_main_dispatch (context=0x7fbeb8000ef0) at ../glib/gmain.c:3476
#22 g_main_context_dispatch_unlocked (context=0x7fbeb8000ef0) at ../glib/gmain.c:4284
#23 0x00007fbecf66ff18 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7fbeb8000ef0,
block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4349
#24 0x00007fbecf612ad3 in g_main_context_iteration (context=0x7fbeb8000ef0, may_block=1) at ../glib/gmain.c:4414
#25 0x00007fbed0c6d39f in QEventDispatcherGlib::processEvents (this=0x560393dd5590, flags=...)
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#26 0x00007fbed09adbcb in QEventLoop::exec (this=this@entry=0x7ffec341ab20, flags=..., flags@entry=...)
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/global/qflags.h:34
#27 0x00007fbed09a99cd in QCoreApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/global/qflags.h:74
#28 0x00007fbed11fa05d in QGuiApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1925
#29 0x00007fbed1bc30d9 in QApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2574
#30 0x0000560393c1149b in main (argc=<optimized out>, argv=<optimized out>)
at /usr/src/debug/plasma-workspace-5.91.0-2.fc40.x86_64/plasma-windowed/main.cpp:78
Plasma::AppletPrivate::mainConfigGroup in frame 2 had a null q pointer and ran q->containment() so that might be where the null pointer was from.
(gdb) frame 2
#2 0x00007fbed3210af3 in Plasma::AppletPrivate::mainConfigGroup (this=0x5603941b7b40)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasma/private/applet_p.cpp:514
Downloading source file /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasma/private/applet_p.cpp
514 Containment *c = q->containment();
(gdb) p q
The invalid reads and frees I saw with valgrind might've led to the different traces in a race condition depending on whether the memory corruption was detected by glibc or the crash in QObject::parent happened first. The full trace of all threads is attached.
The null q pointer line wasn't shown in my previous comment.
(gdb) frame 2
#2 0x00007fbed3210af3 in Plasma::AppletPrivate::mainConfigGroup (this=0x5603941b7b40)
at /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasma/private/applet_p.cpp:514
Downloading source file /usr/src/debug/libplasma-5.91.0-1.fc40.x86_64/src/plasma/private/applet_p.cpp
514 Containment *c = q->containment();
(gdb) p q
$4 = (Plasma::Applet *) 0x0
Thanks for the bug report. I'm sorry we weren't able to get to this yet. There have been many fixes and improvements since this was reported, and this issue may have been fixed. I'm not able to reproduce this on today's git-master, running the command provided ten times. Can you please re-test on your system with Plasma 6.4.1 or later and let us know if you can still reproduce the problem? If you can, please set this report back to REPORTED. Thanks! This problem didn't happen in Plasma 6.4.0 on Wayland when I ran plasmawindowed org.kde.plasma.kickoff several times. The application launcher menu appeared right away instead of the ...> icon as when I reported this problem. I guess this was fixed. Thanks. |