Bug 442711

Summary: Crash in thumbnails when using QPainter backend
Product: [Plasma] kwin Reporter: David Edmundson <kde>
Component: coreAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: nate
Priority: NOR Keywords: wayland-only
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Other   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description David Edmundson 2021-09-19 22:03:05 UTC
#0  QExplicitlySharedDataPointer<KWin::GLTexturePrivate>::operator->() const (this=0x8) at /usr/include/qt/QtCore/qshareddata.h:161
#1  qGetPtrHelper<QExplicitlySharedDataPointer<KWin::GLTexturePrivate> const>(QExplicitlySharedDataPointer<KWin::GLTexturePrivate> const&) (ptr=...) at /usr/include/qt/QtCore/qglobal.h:1143
#2  KWin::GLTexture::d_func() const (this=0x0) at /home/david/projects/kde5/src/kde/workspace/kwin/src/libkwineffects/kwingltexture.h:151
#3  KWin::GLTexture::isYInverted() const (this=0x0) at /home/david/projects/kde5/src/kde/workspace/kwin/src/libkwineffects/kwingltexture.cpp:656
#4  0x00005561ce859e87 in KWin::WindowStream::bufferToStream() (this=0x5561cf8d9bc0) at /home/david/projects/kde5/src/kde/workspace/kwin/src/plugins/screencast/screencastmanager.cpp:78
#5  0x00007f2e9821a76b in  () at /usr/lib/libQt5Core.so.5
#6  0x00007f2e9ade2175 in KWin::Scene::paintScreen(QRegion const&, QRegion const&, QRegion*, QRegion*, KWin::RenderLoop*, QMatrix4x4 const&)
    (this=0x5561cf1f3050, damage=<optimized out>, repaint=<optimized out>, updateRegion=0x7ffd876eea88, validRegion=0x7ffd876eea80, renderLoop=<optimized out>, projection=...) at /home/david/projects/kde5/src/kde/workspace/kwin/src/scene.cpp:219
#7  0x00007f2e90bdc310 in KWin::SceneQPainter::paint(KWin::AbstractOutput*, QRegion const&, QList<KWin::Toplevel*> const&, KWin::RenderLoop*) (this=0x5561cf1f3050, output=0x5561cf1f1830, damage=..., toplevels=<optimized out>, renderLoop=0x5561cf1e1d70)
    at /home/david/projects/kde5/src/kde/workspace/kwin/src/plugins/scenes/qpainter/scene_qpainter.cpp:101
#8  0x00007f2e9ad2df20 in KWin::Compositor::composite(KWin::RenderLoop*) (this=0x5561cf001c10, renderLoop=0x5561cf1e1d70) at /home/david/projects/kde5/src/kde/workspace/kwin/src/composite.cpp:619
#9  0x00007f2e9821a76b in  () at /usr/lib/libQt5Core.so.5
#10 0x00007f2e9acf62b0 in KWin::RenderLoop::frameRequested(KWin::RenderLoop*) (this=0x0, _t1=0x5561cf1e1d70) at src/kwin_autogen/EWIEGA46WW/moc_renderloop.cpp:206
#11 0x00007f2e9add063a in KWin::RenderLoopPrivate::dispatch() (this=0x5561cf1f07a0) at /home/david/projects/kde5/src/kde/workspace/kwin/src/renderloop.cpp:148
#12 KWin::RenderLoopPrivate::RenderLoopPrivate(KWin::RenderLoop*)::$_0::operator()() const (this=<optimized out>) at /home/david/projects/kde5/src/kde/workspace/kwin/src/renderloop.cpp:31
#13 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::RenderLoopPrivate::RenderLoopPrivate(KWin::RenderLoop*)::$_0>::call(KWin::RenderLoopPrivate::RenderLoopPrivate(KWin::RenderLoop*)::$_0&, void**) (f=<optimized out>, arg=<optimized out>)
    at /usr/include/qt/QtCore/qobjectdefs_impl.h:146
#14 QtPrivate::Functor<KWin::RenderLoopPrivate::RenderLoopPrivate(KWin::RenderLoop*)::$_0, 0>::call<QtPrivate::List<>, void>(KWin::RenderLoopPrivate::RenderLoopPrivate(KWin::RenderLoop*)::$_0&, void*, void**) (f=<optimized out>, arg=<optimized out>)
    at /usr/include/qt/QtCore/qobjectdefs_impl.h:256
#15 QtPrivate::QFunctorSlotObject<KWin::RenderLoopPrivate::RenderLoopPrivate(KWin::RenderLoop*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=<optimized out>, this_=<optimized out>, r=0x5561cf8ef230, a=0x7ffd876ee960, ret=0x0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
#16 0x00007f2e9821a76b in  () at /usr/lib/libQt5Core.so.5
Comment 1 Vlad Zahorodnii 2021-09-20 08:26:31 UTC
The title is confusing. KWin crashes in screencasting code with QPainter render backend.
Comment 2 Bug Janitor Service 2021-09-28 15:58:59 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1470
Comment 3 Aleix Pol 2021-09-28 17:19:37 UTC
Git commit 9bda050d84ed493cbe429116b32739a72e3ce994 by Aleix Pol Gonzalez, on behalf of Aleix Pol.
Committed on 28/09/2021 at 17:18.
Pushed by apol into branch 'master'.

screencasting: Do not crash when the platform cannot provide textures

When using the QPainter backend, we will be getting null textures. Just
ignore these as the backend isn't all that important.

M  +9    -0    src/plugins/screencast/screencastmanager.cpp

https://invent.kde.org/plasma/kwin/commit/9bda050d84ed493cbe429116b32739a72e3ce994
Comment 4 Zamundaaa 2021-11-03 06:06:50 UTC
Git commit e4b279866e26f4388d6a3dc7e7b4c1ac4efd72ac by Xaver Hugl, on behalf of Aleix Pol.
Committed on 03/11/2021 at 06:06.
Pushed by zamundaaa into branch 'Plasma/5.23'.

screencasting: Do not crash when the platform cannot provide textures

When using the QPainter backend, we will be getting null textures. Just
ignore these as the backend isn't all that important.


(cherry picked from commit 9bda050d84ed493cbe429116b32739a72e3ce994)

M  +9    -0    src/plugins/screencast/screencastmanager.cpp

https://invent.kde.org/plasma/kwin/commit/e4b279866e26f4388d6a3dc7e7b4c1ac4efd72ac