https://bugs.kde.org/show_bug.cgi?id=517684
Bug ID: 517684
Summary: kwin_wayland: plasmashell SIGSEGV on monitor power
cycle with NVIDIA proprietary driver
(drmModeListLessees EINVAL)
Classification: Plasma
Product: kwin
Version First 6.6.2
Reported In:
Platform: Other
OS: FreeBSD
Status: REPORTED
Severity: critical
Priority: NOR
Component: wayland-generic
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
FreeBSD 15.0-RELEASE-p4
Product: kwin
Component: wayland
Version: Plasma 6 / KWin 6.x
Severity: Major
Platform: FreeBSD 15.0-RELEASE-p4
Hardware: NVIDIA RTX A400, single monitor (DELL U3415W 3440x1440 via
DisplayPort)
Driver: NVIDIA proprietary 590.48.01 (x11/nvidia-driver-devel, FreeBSD ports)
---
Summary
When a connected monitor is powered off and then back on, kwin_wayland enters
a broken state and plasmashell
crashes with SIGSEGV. The session freezes completely. The root cause appears
to be drmModeListLessees()
returning EINVAL on the NVIDIA proprietary driver, which does not implement
DRM leasing. KWin does not recover
gracefully from this error on hotplug events.
---
Steps to reproduce
1. Start a Plasma Wayland session on FreeBSD with the NVIDIA proprietary
driver (hw.nvidiadrm.modeset=1 in
/boot/loader.conf)
2. Session running normally with one monitor connected via DisplayPort
3. Power off the monitor using its physical power button
4. Wait ~3 seconds
5. Power the monitor back on
Expected result: KWin reconfigures the output, Plasma session continues
normally.
Actual result: Session freezes. plasmashell crashes with SIGSEGV. No
recovery.
---
Session launch command
exec dbus-launch ck-launch-session startplasma-wayland
---
Relevant log output
From ~/.local/share/sddm/wayland-session.log (KWin Wayland output):
kwin_wayland_drm: drmModeListLessees() failed: Invalid argument
kwin_wayland_drm: drmModeListLessees() failed: Invalid argument
kwin_wayland_drm: drmModeListLessees() failed: Invalid argument
kwin_wayland_drm: drmModeListLessees() failed: Invalid argument
These errors appear at session start and repeat on every hotplug event.
NVIDIA's proprietary driver does not
implement the drmModeListLessees DRM ioctl (returns EINVAL).
From /var/log/messages (kernel, around the time of monitor power cycle):
Mar 17 09:31:14 dal kernel: pid 4581 (polkit-kde-authenti), jid 0, uid 1001:
exited on signal 10 (no core dump)
Mar 17 09:31:16 dal kernel: pid 4579 (plasmashell), jid 0, uid 1001: exited
on signal 11 (core dumped)
Mar 17 09:31:17 dal kernel: pid 5551 (plasmashell), jid 0, uid 1001: exited
on signal 6 (core dumped)
From /var/log/Xorg.0.log (NVIDIA DRM mode reset on monitor power cycle):
[74.475] (--) NVIDIA(GPU-0): DFP-0.8: disconnected
[75.251] (II) NVIDIA(0): Setting mode "NULL"
[77.647] (--) NVIDIA(GPU-0): DELL U3415W (DFP-0.8): connected
[78.409] (II) NVIDIA(0): Setting mode "DP-0.8: nvidia-auto-select @3440x1440
+0+0 ..."
The disconnect/reconnect cycle succeeds at the NVIDIA driver level. The crash
happens in plasmashell /
kwin_wayland during output reconfiguration handling.
---
System information
┌───────────────┬───────────────────────────────────────────────────┐
│ Item │ Value │
├───────────────┼───────────────────────────────────────────────────┤
│ OS │ FreeBSD 15.0-RELEASE-p4 │
├───────────────┼───────────────────────────────────────────────────┤
│ GPU │ NVIDIA RTX A400 │
├───────────────┼───────────────────────────────────────────────────┤
│ NVIDIA driver │ 590.48.01 (proprietary, x11/nvidia-driver-devel) │
├───────────────┼───────────────────────────────────────────────────┤
│ KMS │ hw.nvidiadrm.modeset=1 │
├───────────────┼───────────────────────────────────────────────────┤
│ Monitor │ DELL U3415W, 3440x1440, DisplayPort (DFP-0.8) │
├───────────────┼───────────────────────────────────────────────────┤
│ Session type │ Wayland (startplasma-wayland) │
├───────────────┼───────────────────────────────────────────────────┤
│ KWin env │ WLR_NO_HARDWARE_CURSORS=1, KWIN_FORCE_SW_CURSOR=1 │
├───────────────┼───────────────────────────────────────────────────┤
│ PipeWire │ Not running (separate issue) │
└───────────────┴───────────────────────────────────────────────────┘
---
Notes
- drmModeListLessees is part of the DRM lease API (primarily for VR).
NVIDIA's proprietary driver does not
implement this ioctl on FreeBSD and returns EINVAL. KWin should either check
for driver capability before
calling it, or handle the EINVAL return without entering an unrecoverable
state.
---
--
You are receiving this mail because:
You are watching all bug changes.