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.