Bug 436528 - kwin_wayland crashes when starting full-screen recording with OBS
Summary: kwin_wayland crashes when starting full-screen recording with OBS
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: 5.21.4
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-05-03 11:27 UTC by Alois Wohlschlager
Modified: 2021-06-12 09:00 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alois Wohlschlager 2021-05-03 11:27:22 UTC
SUMMARY

When attempting to start screen recording with OBS in full-screen mode, kwin_wayland aborts.

STEPS TO REPRODUCE
1. Install OBS Studio from Flathub
2. QT_QPA_PLATFORM=xcb flatpak run com.obsproject.Studio
3. Add "Desktop Screencast (X11/Wayland)" source
4. Select monitor in the window that appears

OBSERVED RESULT

kwin_wayland aborts.

EXPECTED RESULT

kwin_wayland keeps running and the recording can be started.


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 5.21.4
KDE Frameworks Version: 5.81.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION

Backtrace:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x00007fd05b4ef914 in __GI_abort () at abort.c:100
#2  0x00007fd05b9d71e5 in gl_provider_resolver
    (name=0x7fd05ba3aae7 <entrypoint_strings.lto_priv+8231> "glCopyTextureSubImage2D", providers=0x7fd05ba4af40 <providers>, entrypoints=<optimized out>) at src/gl_generated_dispatch.c:75797
#3  0x00007fd05b9df448 in epoxy_glCopyTextureSubImage2D_resolver () at src/gl_generated_dispatch.c:80848

Unfortunately, gdb hangs at that point, so here is the same backtrace without debug symbols:

#0  0x00007fd05b5064a5 in raise () at /lib64/libc.so.6
#1  0x00007fd05b4ef914 in abort () at /lib64/libc.so.6
#2  0x00007fd05b9d71e5 in  () at /usr/lib64/libepoxy.so.0
#3  0x00007fd05b9df448 in  () at /usr/lib64/libepoxy.so.0
#4  0x000055b772c8dc2b in KWin::PipeWireStream::recordFrame(KWin::GLTexture*, QRegion const&) ()
#5  0x000055b772c8df44 in  ()
#6  0x00007fd05cfd1c17 in  () at /usr/lib64/libQt5Core.so.5
#7  0x00007fd05ca47f85 in KWin::AbstractWaylandOutput::outputChange(QRegion const&) () at /usr/lib64/libkwin.so.5
#8  0x00007fd05555a508 in  () at /usr/lib64/qt5/plugins/org.kde.kwin.waylandbackends/KWinWaylandDrmBackend.so
#9  0x00007fd05554da2d in  () at /usr/lib64/qt5/plugins/org.kde.kwin.waylandbackends/KWinWaylandDrmBackend.so
#10 0x00007fd0543d1490 in KWin::SceneOpenGL::paint(int, QRegion const&, QList<KWin::Toplevel*> const&, KWin::RenderLoop*) () at /usr/lib64/qt5/plugins/org.kde.kwin.scenes/KWinSceneOpenGL.so
#11 0x00007fd05ca923de in KWin::Compositor::handleFrameRequested(KWin::RenderLoop*) () at /usr/lib64/libkwin.so.5
#12 0x00007fd05cfd1c17 in  () at /usr/lib64/libQt5Core.so.5
#13 0x00007fd05ca56e92 in KWin::RenderLoop::frameRequested(KWin::RenderLoop*) () at /usr/lib64/libkwin.so.5
#14 0x00007fd05cb1b333 in KWin::RenderLoopPrivate::dispatch() () at /usr/lib64/libkwin.so.5
#15 0x00007fd05cfd1c17 in  () at /usr/lib64/libQt5Core.so.5
#16 0x00007fd05cfd5b9a in QTimer::timeout(QTimer::QPrivateSignal) () at /usr/lib64/libQt5Core.so.5
#17 0x00007fd05cfc794f in QObject::event(QEvent*) () at /usr/lib64/libQt5Core.so.5
#18 0x00007fd05bfa2aff in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#19 0x00007fd05cf9b13a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#20 0x00007fd05cff20f3 in QTimerInfoList::activateTimers() () at /usr/lib64/libQt5Core.so.5
#21 0x00007fd05cff0587 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib64/libQt5Core.so.5
#22 0x000055b772cc1c1d in  ()
#23 0x00007fd05cf99b7b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#24 0x00007fd05cfa1db0 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#25 0x000055b772c6552c in  ()
#26 0x00007fd05b4f0b25 in __libc_start_main () at /lib64/libc.so.6
#27 0x000055b772c65b7e in _start ()
Comment 1 Alois Wohlschlager 2021-06-12 09:00:39 UTC
Seems like one of the fixes that went into 5.22 applies here.