Bug 465029 - kwin crashes if plasma rendering backend set to software
Summary: kwin crashes if plasma rendering backend set to software
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: 5.26.5
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-01-30 08:18 UTC by gudvinr+kde
Modified: 2023-01-30 10:10 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description gudvinr+kde 2023-01-30 08:18:00 UTC
SUMMARY

While doing investigation for bug 463718 I tried to play with different settings and when I set rendering backend to software in `kcmshell5 qtquicksettings`, after system restart plasma started to crash every time I use alt+tab.

It might be 2 issues, in fact. One with plasma not doing what kwin expecting it to do and another kwin crashing, wihch it shouldn't do (ideally) even if something goes wrong because it brings down everything else too.

STEPS TO REPRODUCE
1. Set rendering backed for plasma to software
2. Restart system (only running plasmashell --replace doesn't seem to cause this issue)
3. Open some window
4. Use Alt+Tab

OBSERVED RESULT
Kwin crashes

EXPECTED RESULT
Kwin does not crash

SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.26.5
KDE Frameworks Version: 5.102.0
Qt Version: 5.15.8
Kernel Version: 6.1.8-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Graphics Processor: AMD Radeon RX Vega M GL Graphics

ADDITIONAL INFORMATION

I was able to capture backtrace for failed process:

#0  QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->() const (this=0x8, this=<optimized out>)
    at /usr/include/qt/QtCore/qscopedpointer.h:116
#1  qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > >(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >&)
    (ptr=..., ptr=<optimized out>) at /usr/include/qt/QtCore/qglobal.h:1149
#2  QSGTexture::d_func() (this=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/coreapi/qsgtexture.h:57
#3  QSGTexture::setFiltering(QSGTexture::Filtering) (this=0x0, filter=filter@entry=QSGTexture::Linear)
    at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/coreapi/qsgtexture.cpp:576
#4  0x00007fbb64486d55 in KWin::ThumbnailTextureProvider::setTexture(std::shared_ptr<KWin::GLTexture> const&)
     (nativeTexture=std::shared_ptr<KWin::GLTexture> (use count 2, weak count 0) = {...}, this=0x55db09446aa0) at /usr/include/c++/12.2.0/bits/unique_ptr.h:191
#5  KWin::WindowThumbnailItem::updatePaintNode(QSGNode*, QQuickItem::UpdatePaintNodeData*) (this=0x55db08fb26f0, oldNode=0x0)
    at /usr/src/debug/kwin/kwin-5.26.5/src/scripting/windowthumbnailitem.cpp:227
#6  0x00007fbb63e5b8d8 in QQuickWindowPrivate::updateDirtyNode(QQuickItem*) (this=0x55db08584900, item=0x55db08fb26f0)
    at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:3888
#7  0x00007fbb63e5c0e5 in QQuickWindowPrivate::updateDirtyNodes() (this=0x55db08584900)
    at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:3633
#8  0x00007fbb63e49489 in QQuickWindowPrivate::syncSceneGraph() (this=0x55db08584900)
    at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:524
#9  0x00007fbb63e110e9 in QSGSoftwareRenderLoop::renderWindow(QQuickWindow*, bool)
     (this=0x55db09197030, window=<optimized out>, isNewExpose=<optimized out>)
    at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp:160
#10 0x00007fbb63e52739 in QQuickWindow::event(QEvent*) (this=0x55db0923d9c0, e=0x7fffc702ef50)
    at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:1863
#11 0x00007fbb62178b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55db0923d9c0, e=0x7fffc702ef50)
    at kernel/qapplication.cpp:3640
#12 0x00007fbb62a8de08 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55db0923d9c0, event=0x7fffc702ef50)
    at kernel/qcoreapplication.cpp:1064
#13 0x00007fbb62f3a0e5 in QPlatformWindow::deliverUpdateRequest() (this=<optimized out>) at kernel/qplatformwindow.cpp:796
#14 QPlatformWindow::windowEvent(QEvent*) (event=<optimized out>, this=0x55db09407370) at kernel/qplatformwindow.cpp:476
#15 QGuiApplicationPrivate::sendQWindowEventToQPlatformWindow(QWindow*, QEvent*) (window=<optimized out>, event=<optimized out>)
    at kernel/qguiapplication.cpp:1987
#16 0x00007fbb6217d041 in QApplication::notify(QObject*, QEvent*) (this=0x7fffc702f5f0, receiver=0x55db0923d9c0, e=0x7fffc702f1d0)
    at kernel/qapplication.cpp:2882
#17 0x00007fbb62a8de08 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55db0923d9c0, event=0x7fffc702f1d0)
    at kernel/qcoreapplication.cpp:1064
#18 0x00007fbb62ad8373 in QTimerInfoList::activateTimers() (this=0x55db07edf0a8) at kernel/qtimerinfo_unix.cpp:643
#19 0x00007fbb62ad8822 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...)
    at kernel/qeventdispatcher_unix.cpp:516
#20 0x000055db0659e9a2 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#21 0x00007fbb62a865ac in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffc702f370, flags=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#22 0x00007fbb62a910d9 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#23 0x00007fbb62f39fe2 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870
#24 0x00007fbb62176f2a in QApplication::exec() () at kernel/qapplication.cpp:2832
#25 0x000055db064bf611 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-5.26.5/src/main_wayland.cpp:609
Comment 1 David Edmundson 2023-01-30 10:10:54 UTC
Fixed in 5.27 with 50b4e988a4794be6fd526eb3e4b1626e17f19637