https://bugs.kde.org/show_bug.cgi?id=523771

            Bug ID: 523771
           Summary: kwin_wayland SIGSEGV in EglContext::currentFramebuffer
                    via ScreenCastStream::record after NVKMS GEM
                    allocation failures (NVIDIA open module)
    Classification: Plasma
           Product: kwin
      Version First 6.7.3
       Reported In:
          Platform: CachyOS
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: screencasting
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

SUMMARY

With an active screencast (Discord screenshare via xdg-desktop-portal-kde) and
a game loading the GPU, opening Overview sometimes segfaults kwin_wayland.
nvidia_drm starts failing GEM allocations, OffscreenQuickView swapchain
creation fails repeatedly, and the next ScreenCastStream::record pass crashes
in EglContext::currentFramebuffer (SEGV_MAPERR at 0x100).

VRAM was not exhausted: ~12-13 GB used of 16 GB. The allocation failures match
existing reports against the open kernel module:
https://forums.developer.nvidia.com/t/nvidia-open-dkms-wayland-xwayland-failed-to-allocate-nvkms-memory-for-gem-object/371922.
The driver side is NVIDIA's problem; this report is about the missing failure
handling that turns it into a compositor crash.

STEPS TO REPRODUCE

1. GPU-heavy game running (Palworld, hosting a co-op session), plus Chromium,
Spotify, and a Discord call
2. Screenshare the game via Discord
3. Open Overview

OBSERVED RESULT

Intermittent kwin_wayland SIGSEGV.

EXPECTED RESULT

Failed allocations degrade the screencast/Overview, not the compositor.

SOFTWARE/OS VERSIONS

Linux distribution: CachyOS, kernel 7.1.5-1-cachyos
KDE Plasma Version: 6.7.3
KWin Version: 6.7.3
Qt Version: 6.11.1
Graphics: NVIDIA GeForce RTX 5070 Ti (GB203), driver 610.43.03 (open kernel
module)
Session: Wayland

ADDITIONAL INFORMATION

Journal immediately before the crash, both lines repeating dozens of times,
with Overview's Main.qml warnings seconds earlier:

    kernel: [drm:nv_drm_gem_alloc_nvkms_memory_ioctl [nvidia_drm]] *ERROR*
[nvidia-drm] [GPU ID 0x00000a00] Failed to allocate NVKMS memory for GEM object
    kwin_wayland[1551]: Creating a swapchain for OffscreenQuickView failed!
    kernel: kwin_wayland[1551]: segfault at 100 ip 00007fab8654b804 sp
00007ffd8dcb43a8 error 4 in libkwin.so.6.7.3[34b804,7fab86369000+6c1000]

Backtrace of the crashing thread (systemd-coredump):

    #0  0x00007fab8654b804 KWin::EglContext::currentFramebuffer() (libkwin.so.6
+ 0x34b804)
    #1  0x00007fab8654b88c
KWin::EglContext::pushFramebuffer(KWin::GLFramebuffer*) (libkwin.so.6 +
0x34b88c)
    #2  0x00007fab866116c2 KWin::WorkspaceScene::paint(KWin::RenderTarget
const&, QPoint const&, KWin::Region const&) (libkwin.so.6 + 0x4116c2)
    #3  0x00007fab42887fd9 n/a (screencast.so + 0x14fd9)
    #4  0x00007fab42894ebe
KWin::ScreenCastStream::record(QFlags<KWin::ScreenCastStream::Content>)
(screencast.so + 0x21ebe)
    #5  0x00007fab428954e1 n/a (screencast.so + 0x224e1)
    #6  0x00007fab8380fffb n/a (libQt6Core.so.6 + 0x20fffb)
    #7  0x00007fab838260d4 QTimer::timerEvent(QTimerEvent*) (libQt6Core.so.6 +
0x2260d4)
    #8  0x00007fab83805ba9 QObject::event(QEvent*) (libQt6Core.so.6 + 0x205ba9)
    #9  0x00007fab84b04c1b QApplicationPrivate::notify_helper(QObject*,
QEvent*) (libQt6Widgets.so.6 + 0x104c1b)
    #10 0x00007fab83798a48 QCoreApplication::notifyInternal2(QObject*, QEvent*)
(libQt6Core.so.6 + 0x198a48)
    #11 0x00007fab839a8f6a QTimerInfoList::activateTimers() (libQt6Core.so.6 +
0x3a8f6a)
    #12 0x00007fab839b56a5
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(libQt6Core.so.6 + 0x3b56a5)
    #13 0x00007fab84800672
QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(libQt6Gui.so.6 + 0x800672)
    #14 0x00007fab837a78b4
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (libQt6Core.so.6 +
0x1a78b4)
    #15 0x00007fab8379c8f4 QCoreApplication::exec() (libQt6Core.so.6 +
0x19c8f4)
    #16 0x000056199f51afd7 n/a (kwin_wayland + 0x3efd7)
    #17 0x00007fab82e27d0e n/a (libc.so.6 + 0x27d0e)
    #18 0x00007fab82e27e4b __libc_start_main (libc.so.6 + 0x27e4b)
    #19 0x000056199f520e65 n/a (kwin_wayland + 0x44e65)

Related: bug 471809 covers the driver-side NVKMS allocation failure (RESOLVED
UPSTREAM); this report is specifically about kwin_wayland crashing in the
screencast paint path instead of handling that failure. Bug 484215
(ScreenCastStream::recordFrame, WORKSFORME) and bug 521970
(Item::sortedChildItems via ScreenCastStream::record, FIXED) are earlier
crashes in the same path with different frames.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to