100% reproducible #0 0x00007f2a3b33bd54 in QQmlData::isSignalConnected(QAbstractDeclarativeData*, QObject const*, int) () at /lib64/libQt6Qml.so.6 #1 0x00007f2a395dd96e in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6 #2 0x00007f2a397a8300 in QAbstractItemModel::modelAboutToBeReset(QAbstractItemModel::QPrivateSignal) () at /lib64/libQt6Core.so.6 #3 0x000055ecdfa912df in ShellContainmentModel::load() (this=0x55ece334fc80) at /usr/src/debug/plasma-workspace-5.27.80^20230617.023256.88fff77-24.fc39.x86_64/shell/shellcontainmentconfig.cpp:330 #4 0x000055ecdfa340af in ShellContainmentModel::qt_metacall(QMetaObject::Call, int, void**) (this=0x55ece334fc80, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffd6507bd08) at /usr/src/debug/plasma-workspace-5.27.80^20230617.023256.88fff77-24.fc39.x86_64/redhat-linux-build/shell/plasmashell_autogen/EWIEGA46WW/moc_shellcontainmentconfig.cpp:324 #5 0x00007f2a3b3b910a in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /lib64/libQt6Qml.so.6 #6 0x00007f2a3b260bfe in QV4::CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /lib64/libQt6Qml.so.6 #7 0x00007f2a3b262975 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /lib64/libQt6Qml.so.6 #8 0x00007f2a3b2bb90b in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) () at /lib64/libQt6Qml.so.6 #9 0x00007f2a3b2c0327 in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) () at /lib64/libQt6Qml.so.6 #10 0x00007f2a3b20a546 in QV4::doCall(QV4::Function*, QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext*) () at /lib64/libQt6Qml.so.6 #11 0x00007f2a3b20ab4b in QV4::Function::call(QObject*, void**, QMetaType const*, int, QV4::ExecutionContext*) () at /lib64/libQt6Qml.so.6 #12 0x00007f2a3b37b727 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () at /lib64/libQt6Qml.so.6 #13 0x00007f2a3b31396b in QQmlBoundSignalExpression::evaluate(void**) () at /lib64/libQt6Qml.so.6 #14 0x00007f2a3b314350 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () at /lib64/libQt6Qml.so.6 #15 0x00007f2a3b3a747c in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /lib64/libQt6Qml.so.6 #16 0x00007f2a395dd990 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6 #17 0x00007f2a395ddd24 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6 #18 0x00007f2a262f17ba in QQuickAbstractButtonPrivate::handleRelease(QPointF const&, unsigned long) () at /lib64/libQt6QuickTemplates2.so.6 #19 0x00007f2a26318a45 in QQuickControl::mouseReleaseEvent(QMouseEvent*) () at /lib64/libQt6QuickTemplates2.so.6 #20 0x00007f2a3b83a1c8 in QQuickItem::event(QEvent*) () at /lib64/libQt6Quick.so.6 #21 0x00007f2a3a9c0b08 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6 #22 0x00007f2a3957c358 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6 #23 0x00007f2a3b9cf99d in QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(QQuickItem*, bool, QPointerEvent*, bool) () at /lib64/libQt6Quick.so.6 #24 0x00007f2a3b9d01c7 in QQuickDeliveryAgentPrivate::deliverUpdatedPoints(QPointerEvent*) () at /lib64/libQt6Quick.so.6 #25 0x00007f2a3b9d1553 in QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent*) () at /lib64/libQt6Quick.so.6 #26 0x00007f2a3b9d25ab in QQuickDeliveryAgentPrivate::handleMouseEvent(QMouseEvent*) () at /lib64/libQt6Quick.so.6 #27 0x00007f2a3b9d44a8 in QQuickDeliveryAgent::event(QEvent*) () at /lib64/libQt6Quick.so.6 #28 0x00007f2a3b8e7642 in QQuickWindow::event(QEvent*) () at /lib64/libQt6Quick.so.6 #29 0x00007f2a3a9c0b08 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6 #30 0x00007f2a3957c358 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6 #31 0x00007f2a39e09017 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib64/libQt6Gui.so.6 #32 0x00007f2a39e6339c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Gui.so.6 #33 0x00007f2a3a343964 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt6Gui.so.6 #34 0x00007f2a3831c3ac in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #35 0x00007f2a3837a448 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #36 0x00007f2a38319a33 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #37 0x00007f2a3981ff7f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6 #38 0x00007f2a39588ee3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6 --Type <RET> for more, q to quit, c to continue without paging--c #39 0x00007f2a39584b8d in QCoreApplication::exec() () at /lib64/libQt6Core.so.6 #40 0x000055ecdfa2c47c in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-5.27.80^20230617.023256.88fff77-24.fc39.x86_64/shell/main.cpp:253
Can reproduce.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3116
*** Bug 474127 has been marked as a duplicate of this bug. ***
Most likely fixed by Harald Sitter with https://invent.kde.org/plasma/plasma-workspace/-/commit/3a4b85fc7bfe80bec58301444688a08821976295 in Plasma 5.27.8. Can you test again, Justin? Thanks!
Yeah can confirm, thanks!
*** Bug 476034 has been marked as a duplicate of this bug. ***
We got a duplicate report with the same backtrace from someone using Plasma 5.27.8. Here's how they can reproduce it: > When deleting a panel on an external monitor (connected with HDMI) plasma crashes after clicking "delete" immediately Cannot reproduce on Plasma 6, though, and Justin says it's fixed for him too on Plasma 6. So it seems like the patch probably fixed the issue for Plasma 6, but not 5.27.8. Changing "Version Fixed In" field accordingly.
*** Bug 476991 has been marked as a duplicate of this bug. ***
Re-opening as we have new duplicates. I cannot reproduce this issue, but some can reproduce it 100%.
Created attachment 163178 [details] GDB output of the crash I can 100% reproduce this in KDE neon unstable (all up-to-date). Additional Info (not present in my original report): This persists across reboot, so the panel really is not removed. Just to re-iterate (see #476991 for automatic crash report): Application: plasmashell (5.81.0) Qt Version: 6.6.0 Frameworks Version: 5.245.0 Operating System: Linux 6.2.0-36-generic x86_64 Windowing System: Wayland Distribution: KDE neon Unstable Edition DrKonqi: 5.81.0 [CoredumpBackend] -- Information about the crash: Steps to reproduce 1.) Add new (default) Panel 2.) Activate Edit mode ("Alt+D, E") via right-click menu of the desktop 3.) Activate Editing of Desktop and Panels (translated from German, sorry) 4.) Remove any panel Actual Result: Plasma crashes, the panel is not removed. Note: The Edit mode (Alt+D, E) will not show the option for editing desktops and panels right now, you'd have to add another panel to enter it again. Expected Result: Panel is removed.
(In reply to Martin Riethmayer from comment #10) > Created attachment 163178 [details] > GDB output of the crash > > I can 100% reproduce this in KDE neon unstable (all up-to-date). > > Additional Info (not present in my original report): This persists across > reboot, so the panel really is not removed. > > Just to re-iterate (see #476991 for automatic crash report): > Application: plasmashell (5.81.0) > > Qt Version: 6.6.0 > Frameworks Version: 5.245.0 > Operating System: Linux 6.2.0-36-generic x86_64 > Windowing System: Wayland > Distribution: KDE neon Unstable Edition > DrKonqi: 5.81.0 [CoredumpBackend] > > -- Information about the crash: > Steps to reproduce > > 1.) Add new (default) Panel > 2.) Activate Edit mode ("Alt+D, E") via right-click menu of the desktop > 3.) Activate Editing of Desktop and Panels (translated from German, sorry) > 4.) Remove any panel > > Actual Result: > Plasma crashes, the panel is not removed. Note: The Edit mode (Alt+D, E) > will not show the option for editing desktops and panels right now, you'd > have to add another panel to enter it again. > > Expected Result: > Panel is removed. was the window "Manage desktop and panels" from edit mode invoked prior the crash? (as that bt goes there)
With Martin's steps, I get a crash, though it has a different backtrace. I've submitted it as Bug 477117.
Yes, the desktop and panel edit mode was invoked before the crash. Sorry, new to GDB. Should I upload a new one, wher I start GDB only just before really removing the panel?
@Nate: I've looked at your Bug 477117, and your steps seem to be a little different: You're entering the panel edit mode and delete the panel from there, while in this bug report, I'm entering the desktop edit mode and then "Manage Desktops And Panels..." so that probably explains the different Backtrace?
Makes sense, yeah. I missed that part, thanks.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3592
Git commit cf5e06e78840f89ec647a13d8c6f2e5198d7f757 by Marco Martin. Committed on 27/11/2023 at 09:47. Pushed by mart into branch 'master'. don't try to reset the model twice load() is already called when Contaiment::destroyedChanged gets triggered so calling it immediately is useless. This also caused plasma to crash as described in 471292 M +1 -1 shell/shellcontainmentconfig.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/cf5e06e78840f89ec647a13d8c6f2e5198d7f757
Cool, I can confirm there's no more crash for me after latest updates, thanks.