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

            Bug ID: 528241
           Summary: [crash] plasmashell SEGV/malloc-abort in KPipeWire
                    PipeWireSourceItem (Task Manager thumbnails) on AMD
                    Radeon 880M, kills whole session
    Classification: Plasma
           Product: plasmashell
      Version First 6.8.1
       Reported In:
          Platform: CachyOS
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: Task Manager and Icons-Only Task Manager widgets
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
  Target Milestone: 1.0

Two plasmashell crashes (SEGV + SIGABRT) within 24 h, both on the
QSGRenderThread in PipeWireSourceItem::updatePaintNode (libKPipeWire) in the
dmabuf -> GL texture import path (dri2_from_dma_bufs, Mesa gallium) while the
Task Manager applet renders window thumbnails.

Environment:
- Plasma 6.8.1 (plasma-workspace 6.8.1-1.1, kwin 6.8.1-2.1), Qt 6.12.0
- Mesa 26.2.5
- Kernel 7.3.0-4-cachyos
- PipeWire 1.6.10, wireplumber 0.5.18
- AMD Radeon 880M (Strix APU iGPU), Wayland session, fresh install

Repro:
1. Plasma 6.8.1 session on AMD iGPU
2. Task Manager applet (org.kde.plasma.taskmanager) placed on a panel and/or
its configuration dialog opened (PipeWireThumbnail.qml instantiates
PipeWire.PipeWireSourceItem)
3. Shell crashes intermittently during thumbnail rendering (two crashes in 24 h
on the test system)

Crash 1 - SIGSEGV (SEGV_MAPERR), thread QSGRenderThread:
#0  libc.so.6
#1  posix_memalign (libc.so.6)
#2  libgallium-26.2.5
#3  dri2_from_dma_bufs (libgallium-26.2.5)
#4-6 libEGL_mesa.so.0
#7  GLHelpers::createImage(void*, DmaBufAttributes const&, unsigned int, QSize
const&, gbm_device*) (libKPipeWire.so.6)
#8  libKPipeWire.so.6
#9  PipeWireSourceItem::updatePaintNode(QSGNode*,
QQuickItem::UpdatePaintNodeData*) (libKPipeWire.so.6)
#10 QQuickWindowPrivate::updateDirtyNode
#11 QQuickWindowPrivate::updateDirtyNodes
#12 QQuickWindowPrivate::syncSceneGraph
Kernel log: QSGRenderThread: segfault at fffffffffffffffb ... likely on CPU 0

Crash 2 - SIGABRT (glibc heap corruption), thread QSGRenderThread:
#0  pthread_kill / #1 raise / #2 abort
#3-4 glibc heap check (corrupted size/pointer)
#5  malloc (libc.so.6)
#6  operator new (libstdc++.so.6)
#7  libQt6Gui.so.6 (QRhi texture allocation)
#8  QRhi::newTexture(QRhiTexture::Format, QSize const, int,
QFlags<QRhiTexture::Flag>)
#9  QSGPlainTexture::setTextureFromNativeTexture
#10 QNativeInterface::QSGOpenGLTexture::fromNative
#11 libKPipeWire.so.6
#12 PipeWireSourceItem::updatePaintNode(QSGNode*,
QQuickItem::UpdatePaintNodeData*) (libKPipeWire.so.6)
#13-15 QQuickWindowPrivate::updateDirtyNode / updateDirtyNodes / syncSceneGraph

Expected: a thumbnail update failure degrades gracefully; at worst the applet
logs and skips the frame. The shell must not die.
Actual: heap corruption in the Mesa dmabuf -> DRI2/GL import path; the entire
Plasma session terminates, taking all Wayland clients (e.g. virt-manager) down
with it.

Notes:
- KWin did not crash; no amdgpu GPU faults in dmesg; no system reboots
- Task Manager applet is the only component on the system linking libKPipeWire
- Workaround: use the icontasks applet instead; no further crashes since
switching
- Related: bug 469016 (Task Manager previews on non-Intel GPU), bug 524881
(Task Manager previews, PipeWire 'no more input formats')
- Coredumps available from the reporter on request (systemd-coredump, ~42 MB +
~38 MB, zstd)

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

Reply via email to