Bug 475296

Summary: krfb-virtualmonitor crashes kwin_wayland
Product: [Plasma] kwin Reporter: Janet Blackquill <uhhadd>
Component: wayland-genericAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: ahiemstra, nate, xaver.hugl
Priority: NOR    
Version First Reported In: git master   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Janet Blackquill 2023-10-06 20:33:44 UTC
#0  0x00007f4e17bf48ec in std::__shared_ptr<KWin::GLTexture, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<KWin::GLTexture, (__gnu_cxx::_Lock_policy)2> const&)
    (this=0x7fff69d58b90) at /usr/include/c++/13/bits/shared_ptr_base.h:1522
#1  0x00007f4e17bf4937 in std::shared_ptr<KWin::GLTexture>::shared_ptr(std::shared_ptr<KWin::GLTexture> const&) (this=0x7fff69d58b90) at /usr/include/c++/13/bits/shared_ptr.h:204
#2  0x00007f4e17ec6acf in KWin::EglSwapchainSlot::texture() const (this=0x0) at /home/jblackquill/KDE/Sources/kwin/src/platformsupport/scenes/opengl/eglswapchain.cpp:44
#3  0x00007f4e17e33d2e in KWin::VirtualEglGbmLayer::texture() const (this=0x19161f0) at /home/jblackquill/KDE/Sources/kwin/src/backends/drm/drm_virtual_egl_layer.cpp:140
#4  0x00007f4e17de4f8b in KWin::EglGbmBackend::textureForOutput(KWin::Output*) const (this=0x1c78240, output=0x2b6e650)
    at /home/jblackquill/KDE/Sources/kwin/src/backends/drm/drm_egl_backend.cpp:171
#5  0x00007f4e17bf18bb in KWin::WorkspaceSceneOpenGL::textureForOutput(KWin::Output*) const (this=0x2be8cc0, output=0x2b6e650)
    at /home/jblackquill/KDE/Sources/kwin/src/scene/workspacescene_opengl.cpp:90
#6  0x00007f4dddcc2b8c in KWin::OutputScreenCastSource::render(KWin::GLFramebuffer*) (this=0x1966470, target=0x2bc8320)
    at /home/jblackquill/KDE/Sources/kwin/src/plugins/screencast/outputscreencastsource.cpp:57
#7  0x00007f4dddcd774f in KWin::ScreenCastStream::recordFrame(QRegion const&) (this=0x1521010, _damagedRegion=...)
    at /home/jblackquill/KDE/Sources/kwin/src/plugins/screencast/screencaststream.cpp:556
#8  0x00007f4dddcd588e in operator()() const (__closure=0x286c6e0) at /home/jblackquill/KDE/Sources/kwin/src/plugins/screencast/screencaststream.cpp:335
#9  0x00007f4dddcda607 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::ScreenCastStream::ScreenCastStream(KWin::ScreenCastSource*, QObject*)::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7fff69d593c0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:127
#10 0x00007f4dddcda589 in QtPrivate::Functor<KWin::ScreenCastStream::ScreenCastStream(KWin::ScreenCastSource*, QObject*)::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7fff69d593c0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:241
#11 0x00007f4dddcda496 in QtPrivate::QFunctorSlotObject<KWin::ScreenCastStream::ScreenCastStream(KWin::ScreenCastSource*, QObject*)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x286c6d0, r=0x1521010, a=0x7fff69d593c0, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:409
#12 0x00007f4e13dde3a4 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt6Core.so.6
#13 0x00007f4e13df093d in QTimer::timeout(QTimer::QPrivateSignal) () at /lib64/libQt6Core.so.6
#14 0x00007f4e13dcfddf in QObject::event(QEvent*) () at /lib64/libQt6Core.so.6
#15 0x00007f4e151c0af8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#16 0x00007f4e13d7cdc8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6
#17 0x00007f4e13f01a93 in QTimerInfoList::activateTimers() () at /lib64/libQt6Core.so.6
#18 0x00007f4e13efea56 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
#19 0x00007f4e14b40062 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Gui.so.6
#20 0x00007f4e13d89a03 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6
#21 0x00007f4e13d856ad in QCoreApplication::exec() () at /lib64/libQt6Core.so.6
#22 0x0000000000499b7c in main(int, char**) (argc=14, argv=0x7fff69d5b358) at /home/jblackquill/KDE/Sources/kwin/src/main_wayland.cpp:611
Comment 1 Bug Janitor Service 2024-01-15 14:03:58 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4929
Comment 2 Vlad Zahorodnii 2024-01-15 15:25:02 UTC
Git commit 3b67edf20d7f039371f5ee00bae90c8b66106da3 by Vlad Zahorodnii.
Committed on 15/01/2024 at 16:07.
Pushed by vladz into branch 'master'.

backends/drm: Fix a crash in VirtualEglGbmLayer::texture()

If nothing has been rendered yet, m_currentSlot will be null.
Related: bug 479558

M  +2    -1    src/backends/drm/drm_virtual_egl_layer.cpp

https://invent.kde.org/plasma/kwin/-/commit/3b67edf20d7f039371f5ee00bae90c8b66106da3
Comment 3 Vlad Zahorodnii 2024-01-15 18:08:58 UTC
Git commit 05de026fd2019f7e2ad380c169c7097d26b71e1c by Vlad Zahorodnii.
Committed on 15/01/2024 at 18:57.
Pushed by vladz into branch 'Plasma/6.0'.

backends/drm: Fix a crash in VirtualEglGbmLayer::texture()

If nothing has been rendered yet, m_currentSlot will be null.
Related: bug 479558
(cherry picked from commit 3b67edf20d7f039371f5ee00bae90c8b66106da3)

M  +2    -1    src/backends/drm/drm_virtual_egl_layer.cpp

https://invent.kde.org/plasma/kwin/-/commit/05de026fd2019f7e2ad380c169c7097d26b71e1c