https://bugs.kde.org/show_bug.cgi?id=521376
Bug ID: 521376
Summary: Consistent Crash - virtmgr input capture + monitor
output switch to VM and back to host.
Classification: Plasma
Product: kwin
Version First 6.6.4
Reported In:
Platform: Kubuntu
OS: Linux
Status: REPORTED
Severity: crash
Priority: NOR
Component: core
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 193097
--> https://bugs.kde.org/attachment.cgi?id=193097&action=edit
Backtrace from crash.
## Summary
plasmashell crashes (SIGSEGV in QQuickDeliveryAgentPrivate::removeGrabber) when
a display output is re-added on Wayland — reproducible by switching the
monitor's input source away and back
## Steps to Reproduce
1. Single-monitor Wayland session (Plasma 6.6.4), one 4K HDR output on
DisplayPort (DP-1).
2. Run virtmgr with input capture - sending monitor output to another input on
the same monitor (HDMI1)
3. Capture input in virtmgr (both mouse + kbd) and switch to the input in
monitor that shows the VM's display
4. Interact with VM
5. Switch back to the input for the host on the monitor
## Observed Result
plasmashell segfaults every time the output is re-added. The panel/desktop
disappears; plasmashell is restarted by systemd.
## Expected Result
The output is re-added and the panel/containment becomes visible again without
crashing.
## Reproducibility
Consistent — crashes on every input switch-back. Multiple matching coredumps
captured (e.g. 2026-06-07 and 2026-06-11).
## Crash signature (crashing thread)
The crash is a use-after-free during the screen-add handler: Wayland
re-initialises the screen → `QGuiApplication::screenAdded` →
`OutputOrderWatcher::outputOrderChanged` runs a QML signal handler that sets a
Containment/Plasmoid `visible` property → recursive `setEffectiveVisibleRecur`
→ `QQuickDeliveryAgentPrivate::removeGrabber()` dereferences an item that is
being torn down → SIGSEGV.
```
#6 QQuickDeliveryAgentPrivate::removeGrabber(QQuickItem*, bool, bool, bool)
[libQt6Quick]
#7 QQuickItemPrivate::setEffectiveVisibleRecur(bool)
... (recursion) ...
#19 QQuickItemPrivate::setVisible(bool)
#20 QQuickItem::qt_metacall(...)
#21 PlasmaQuick::AppletQuickItem::qt_metacall(...)
[libPlasmaQuick]
#22 PlasmoidItem::qt_metacall(...)
#23 ContainmentItem::qt_metacall(...)
#25 QQmlPropertyPrivate::write(...)
[libQt6Qml]
#35 QQmlBoundSignalExpression::evaluate(void**)
#49 OutputOrderWatcher::outputOrderChanged(QList<QString> const&)
[libkworkspace6]
#51 QGuiApplication::screenAdded(QScreen*)
[libQt6Gui]
#52 QtWaylandClient::QWaylandDisplay::handleScreenInitialized(...)
[libQt6WaylandClient]
#53 QtWaylandClient::QWaylandScreen::maybeInitialize()
#59 wl_display_dispatch_queue_pending
[libwayland-client]
```
Full symbolicated backtrace of all threads (with locals) is attached.
## Software / Hardware
- Plasma: 6.6.4 (plasma-workspace 4:6.6.4-0ubuntu2)
- Qt: 6.10.2 (qt6-declarative 6.10.2+dfsg-3)
- KDE Frameworks: 6.24.0
- Distro: Ubuntu 26.04 LTS
- Kernel: 7.0.0-22-generic
- Session: Wayland
- GPU: Intel UHD Graphics 770 (Alder Lake-S, rendering via Mesa 26.0.3) +
NVIDIA RTX 3060 (hybrid)
- Output: single DisplayPort DP-1, 3840x2160@60, HDR + WCG enabled
## Notes
- Matches the older Plasma 5 report Bug 449856 ("Plasma crashes when monitor is
turned off / switched to another input"), which was closed RESOLVED/WORKSFORME
(April 2024). The same `setEffectiveVisibleRecur` → `removeGrabber` crash now
reproduces on Plasma 6.6.4 / Qt 6 via the
`OutputOrderWatcher::outputOrderChanged` path. May warrant reopening 449856 or
filing as a fresh Plasma 6 regression.
- Unrelated: a third-party plasmoid (`KdeControlStation`) logs many QML
TypeErrors; it is not on the crash stack.
--
You are receiving this mail because:
You are watching all bug changes.