https://bugs.kde.org/show_bug.cgi?id=527991
Bug ID: 527991
Summary: PowerDevil repeatedly crashes in libkscreen
WaylandOutputDevice::setWlConfig() on invalid mode
lookup
Classification: Plasma
Product: KScreen
Version First 6.7.5
Reported In:
Platform: Fedora RPMs
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: common
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Environment:
- Fedora 44 KDE, Wayland
- KDE Plasma 6.7.5
- PowerDevil 6.7.5-3.fc44
- libkscreen 6.7.5-1.fc44
- KWin 6.7.5-1.fc44
- Kernel 7.2.11-200.fc44.x86_64
- Intel UHD Graphics (i915)
- NVIDIA GeForce RTX 4060 Mobile (driver 615.71.09)
- Internal eDP-1: 2560x1600 @ 240 Hz
- External HDMI-A-3: 3840x2160 @ 60 Hz
Observed behavior:
PowerDevil repeatedly terminates with SIGSEGV while
applying display configuration through the libkscreen
KWayland backend.
KWin logs "Applying output configuration failed!"
immediately before multiple PowerDevil crashes.
After suspend/resume, keyboard input can wake the system
without restoring either display. Moving the touchpad
sometimes restores the internal display, followed by
the external HDMI monitor.
The display-wake symptom and the PowerDevil crash
may be related, but direct causality is not confirmed.
Confirmed crash occurrences (Asia/Taipei):
- 2026-10-25 14:50:08: PID 2900
- 2026-10-29 06:09:56: PID 11983
- 2026-10-29 18:56:33: PID 11847
- 2026-10-29 19:28:29: PID 48725
All four crashes share the same KScreen Wayland
call-chain signature.
Symbolicated GDB evidence for PID 48725:
#5 QtWayland::kde_output_device_mode_v2::object(
this=0x10)
qwayland-kde-output-device-v2.h:390
#6 KScreen::WaylandOutputDevice::setWlConfig(...)
backends/kwayland/waylandoutputdevice.cpp:339
#7 KScreen::WaylandConfig::applyConfig(...)
backends/kwayland/waylandconfig.cpp:231
#8 KScreen::WaylandBackend::setConfig(...)
backends/kwayland/waylandbackend.cpp:93
#9 KScreen::SetConfigOperation::start()
src/setconfigoperation.cpp:128
Source analysis (libkscreen v6.7.5):
WaylandOutputDevice::deviceModeFromId() searches
m_modes for the requested mode ID and returns nullptr
if no matching mode is found.
The caller directly dereferences the result:
wlConfig->mode(
object(),
deviceModeFromId(mode->id())->object()
);
There is no null check at this call site.
This is consistent with the observed invalid
object pointer (this=0x10) and SIGSEGV.
Suspected trigger:
A requested mode ID no longer exists in the
current Wayland output mode list, possibly following
output reconfiguration or reconnection.
The exact event invalidating the mode ID is
not yet established.
Steps to reproduce (intermittent):
1. Use a hybrid Intel/NVIDIA Wayland session.
2. Connect an external HDMI display.
3. Suspend and resume the system, or allow display
output configuration changes.
4. Observe intermittent KWin configuration failures.
5. PowerDevil may crash with the stack above.
This does not reproduce on every attempt.
Expected behavior:
Display reconfiguration must not crash PowerDevil.
Missing or stale mode IDs should be handled safely.
Additional information:
POWERDEVIL_NO_DDCUTIL=1 is configured and confirmed
in the running PowerDevil process environment.
No evidence currently locates the crash in libddcutil.
Relevant historical issue:
https://bugs.kde.org/show_bug.cgi?id=498878
Exact source references:
https://github.com/KDE/libkscreen/blob/v6.7.5/backends/kwayland/waylandoutputdevice.cpp
https://github.com/KDE/libkscreen/blob/v6.7.5/backends/kwayland/waylandconfig.cpp
Raw coredumps have been retained locally and are
not included because they can contain private memory.
--
You are receiving this mail because:
You are watching all bug changes.