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.

Reply via email to