Steps to reproduce 1. Create a new empty panel 2. Put an applet on it, and a Panel Spacer applet on each side 3. Delete the panel 4. Click the "Close" button on the "Undo deleting this panel?" notification (this will actually perform the deletion in the background) Plasma then crashes: #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007fe9825958f3 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78 #2 0x00007fe9825486a6 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #3 0x00007fe9850bba09 in KCrash::defaultCrashHandler(int) (sig=11) at /home/nate/kde/src/kcrash/src/kcrash.cpp:624 #4 0x00007fe982548750 in <signal handler called> () at /lib64/libc.so.6 #5 0x00007fe982cf8b3c in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->() const (this=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:118 #6 qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const>(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const&) (ptr=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qglobal.h:1143 #7 QObject::d_func() const (this=<optimized out>) at kernel/qobject.h:132 #8 QObject::property(char const*) const (this=0x0, name=name@entry=0x7fe96807f256 "_plasma_graphicObject") at kernel/qobject.cpp:4085 #9 0x00007fe96807ce53 in PanelSpacer::containmentGraphicObject() const (this=<optimized out>) at /home/nate/kde/src/plasma-workspace/applets/panelspacer/plugin/panelspacer.cpp:126 #10 0x00007fe96807c631 in PanelSpacer::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_a=<optimized out>, _id=<optimized out>, _c=<optimized out>, _o=<optimized out>) at /home/nate/kde/build/plasma-workspace/applets/panelspacer/plugin/org.kde.plasma.panelspacer_autogen/EWIEGA46WW/moc_panelspacer.cpp:183 #11 PanelSpacer::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/nate/kde/build/plasma-workspace/applets/panelspacer/plugin/org.kde.plasma.panelspacer_autogen/EWIEGA46WW/moc_panelspacer.cpp:149 #12 0x00007fe984677e81 in QQmlPropertyData::readProperty(QObject*, void*) const (property=0x7ffc6aa04120, target=<optimized out>, this=0x2097b58) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/qml/qqmlpropertydata_p.h:357 #13 loadProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData const&) (v4=0x12648e0, object=0x14b2d30, property=...) at jsruntime/qv4qobjectwrapper.cpp:138 #14 0x00007fe8fff233ed in () #15 0x00007ffc6aa04390 in () #16 0x0000000000000021 in () #17 0x00007fe8fff23000 in () #18 0x0000000000000000 in ()
Related MR: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1903
Git commit 65fe6b864d5bd5e49d2e0b021823d97ea377e545 by Nate Graham, on behalf of Dominic Hayes. Committed on 09/07/2022 at 22:14. Pushed by ngraham into branch 'master'. Fix "PanelSpacer::containmentGraphicObject()" plasmashell segfault This one-liner fix is from Aleix Pol, and fixes the following: - Crashes when deleting panels with Panel Spacer instances on them (as described in the bug ID named above) - Potentially endless crash looping when running `plasmashell --replace` while a Panel Spacer is on at least one panel Co-authored-by: Aleix Pol <aleixpol@kde.org> FIXED-IN: 5.25.3 M +1 -0 applets/panelspacer/plugin/panelspacer.cpp https://invent.kde.org/plasma/plasma-workspace/commit/65fe6b864d5bd5e49d2e0b021823d97ea377e545
Git commit db0f5e68f26bc65d666fad1a9f16fbada3c0909b by Nate Graham, on behalf of Dominic Hayes. Committed on 09/07/2022 at 22:15. Pushed by ngraham into branch 'Plasma/5.25'. Fix "PanelSpacer::containmentGraphicObject()" plasmashell segfault This one-liner fix is from Aleix Pol, and fixes the following: - Crashes when deleting panels with Panel Spacer instances on them (as described in the bug ID named above) - Potentially endless crash looping when running `plasmashell --replace` while a Panel Spacer is on at least one panel Co-authored-by: Aleix Pol <aleixpol@kde.org> FIXED-IN: 5.25.3 (cherry picked from commit 65fe6b864d5bd5e49d2e0b021823d97ea377e545) M +1 -0 applets/panelspacer/plugin/panelspacer.cpp https://invent.kde.org/plasma/plasma-workspace/commit/db0f5e68f26bc65d666fad1a9f16fbada3c0909b