Summary: | kwin_wayland crashes on screen setup change | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Harald Sitter <sitter> |
Component: | multi-screen | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | kde, nate |
Priority: | NOR | Keywords: | wayland |
Version: | git master | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/kwayland-server/commit/40364d2ee670a5a74318ef96c643762293ca95f0 | Version Fixed In: | 5.24.5 |
Sentry Crash Report: | |||
Attachments: | screenshot of display setup |
Description
Harald Sitter
2022-04-06 08:58:24 UTC
OutputDeviceModeV2InterfacePrivate::findResource can return a nullptr, guarding is trivial, but it implies that someone is calling setCurrentMode before setModes which should be fixed at the root. Edit: It doesn't imply that. We guard that already. It implies we have a unbound mode for a bound output. Can you try patching libkscreen: WaylandOutputDevice::~WaylandOutputDevice() { qDeleteAll(m_modes); kde_output_device_v2_destroy(object()); } and swap these two lines so we tear down the device first. Alas, makes no difference. Git commit 33df55c5a35fff6dbea59c2143f68eb38eca7f57 by Vlad Zahorodnii. Committed on 08/04/2022 at 08:32. Pushed by vladz into branch 'master'. Add Q_ASSERT in OutputDeviceV2Interface::setCurrentMode() M +1 -0 src/server/outputdevice_v2_interface.cpp https://invent.kde.org/plasma/kwayland-server/commit/33df55c5a35fff6dbea59c2143f68eb38eca7f57 Git commit b40c4e3f4108b9a0be9b4f5d437e72f7c2aa3fea by Vlad Zahorodnii. Committed on 08/04/2022 at 12:56. Pushed by vladz into branch 'master'. Simplify code that announces available modes and current mode If no mode has the current flag set, the first mode object will be announced twice. There's also no benefit from sending the current mode as last. If the current mode changes, the compositor will send the current_mode event, not the mode event. M +11 -24 src/server/outputdevice_v2_interface.cpp https://invent.kde.org/plasma/kwayland-server/commit/b40c4e3f4108b9a0be9b4f5d437e72f7c2aa3fea Git commit 40364d2ee670a5a74318ef96c643762293ca95f0 by Vlad Zahorodnii. Committed on 08/04/2022 at 16:40. Pushed by vladz into branch 'Plasma/5.24'. Simplify code that announces available modes and current mode If no mode has the current flag set, the first mode object will be announced twice. There's also no benefit from sending the current mode as last. If the current mode changes, the compositor will send the current_mode event, not the mode event. (cherry picked from commit b40c4e3f4108b9a0be9b4f5d437e72f7c2aa3fea) M +11 -24 src/server/outputdevice_v2_interface.cpp https://invent.kde.org/plasma/kwayland-server/commit/40364d2ee670a5a74318ef96c643762293ca95f0 A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwayland-server/-/merge_requests/365 A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwayland-server/-/merge_requests/367 |