SUMMARY I'm experiencing a crash whenever I close VLC when a video is playing running kwin v5.27.0 (though I haven't tested earlier versions) on wayland. STEPS TO REPRODUCE 1. Play video through VLC 2. Close VLC 3. kwin wayland restarts OBSERVED RESULT EXPECTED RESULT SOFTWARE/OS VERSIONS Version ======= KWin version: 5.27.0 Qt Version: 5.15.8 Qt compile version: 5.15.8 XCB compile version: 1.14 Operation Mode: Xwayland Build Options ============= KWIN_BUILD_DECORATIONS: yes KWIN_BUILD_TABBOX: yes KWIN_BUILD_ACTIVITIES: yes HAVE_X11_XCB: yes HAVE_EPOXY_GLX: yes X11 === Vendor: The X.Org Foundation Vendor Release: 12201001 Protocol Version/Revision: 11/0 SHAPE: yes; Version: 0x11 RANDR: yes; Version: 0x14 DAMAGE: yes; Version: 0x11 Composite: yes; Version: 0x4 RENDER: yes; Version: 0xb XFIXES: yes; Version: 0x50 SYNC: yes; Version: 0x31 GLX: yes; Version: 0x0 Decoration ========== Plugin: org.kde.kwin.aurorae Theme: __aurorae__svg__Canta-light Plugin recommends border size: No onAllDesktopsAvailable: false alphaChannelSupported: true closeOnDoubleClickOnMenu: false decorationButtonsLeft: 0 decorationButtonsRight: 3, 4, 5 borderSize: 3 gridUnit: 10 font: Google Sans,10,-1,5,50,0,0,0,0,0,Regular smallSpacing: 2 largeSpacing: 10 Output backend ============== Name: DRM Active: true Atomic Mode Setting on GPU 0: true Cursor ====== themeName: breeze_cursors themeSize: 24 Options ======= focusPolicy: 1 xwaylandCrashPolicy: xwaylandMaxCrashCount: 3 nextFocusPrefersMouse: true clickRaise: true autoRaise: false autoRaiseInterval: 750 delayFocusInterval: 300 shadeHover: false shadeHoverInterval: 250 separateScreenFocus: true activeMouseScreen: true placement: activationDesktopPolicy: 0 focusPolicyIsReasonable: true borderSnapZone: 10 windowSnapZone: 10 centerSnapZone: 0 snapOnlyWhenOverlapping: false rollOverDesktops: false focusStealingPreventionLevel: 1 operationTitlebarDblClick: 5000 operationMaxButtonLeftClick: 5000 operationMaxButtonMiddleClick: 5015 operationMaxButtonRightClick: 5014 commandActiveTitlebar1: 0 commandActiveTitlebar2: 28 commandActiveTitlebar3: 2 commandInactiveTitlebar1: 4 commandInactiveTitlebar2: 28 commandInactiveTitlebar3: 2 commandWindow1: 7 commandWindow2: 8 commandWindow3: 8 commandWindowWheel: 28 commandAll1: 10 commandAll2: 3 commandAll3: 14 keyCmdAllModKey: 16777251 condensedTitle: false electricBorderMaximize: true electricBorderTiling: true electricBorderCornerRatio: 0.25 borderlessMaximizedWindows: false killPingTimeout: 5000 hideUtilityWindowsForInactive: true compositingMode: 1 useCompositing: true hiddenPreviews: 1 glSmoothScale: 2 glStrictBinding: false glStrictBindingFollowsDriver: true glPreferBufferSwap: 101 glPlatformInterface: 2 windowsBlockCompositing: true latencyPolicy: renderTimeEstimator: allowTearing: true Screen Edges ============ desktopSwitching: false desktopSwitchingMovingClients: false cursorPushBackDistance: 1x1 timeThreshold: 150 reActivateThreshold: 350 actionTopLeft: 0 actionTop: 0 actionTopRight: 0 actionRight: 0 actionBottomRight: 0 actionBottom: 0 actionBottomLeft: 0 actionLeft: 0 Screens ======= Active screen follows mouse: yes Number of Screens: 2 Screen 0: --------- Name: DP-1 Enabled: 1 Geometry: 0,0,2048x1152 Scale: 1.25 Refresh Rate: 143998 Adaptive Sync: incapable Screen 1: --------- Name: DP-2 Enabled: 1 Geometry: 2048,0,2048x1152 Scale: 1.25 Refresh Rate: 143998 Adaptive Sync: incapable Compositing =========== Compositing is active Compositing Type: OpenGL OpenGL vendor string: AMD OpenGL renderer string: AMD Radeon RX 5700 XT (navi10, LLVM 15.0.7, DRM 3.49, 6.1.12-x64v1-xanmod1) OpenGL version string: 4.6 (Core Profile) Mesa 22.3.5 - kisak-mesa PPA OpenGL platform interface: EGL OpenGL shading language version string: 4.60 Driver: Unknown GPU class: Unknown OpenGL version: 4.6 GLSL version: 4.60 Mesa version: 22.3.5 Linux kernel version: 6.1.12 Direct rendering: Requires strict binding: no GLSL shaders: yes Texture NPOT support: yes Virtual Machine: no OpenGL 2 Shaders are used Loaded Effects: --------------- colorpicker outputlocator screenshot zoom kwin4_effect_logout kwin4_effect_sessionquit kwin4_effect_login slidingpopups kwin4_effect_translucency kwin4_effect_windowaperture slide kwin4_effect_squash kwin4_effect_maximize kwin4_effect_morphingpopups kwin4_effect_frozenapp kwin4_effect_fadingpopups kwin4_effect_fullscreen kwin4_effect_scale kwin4_effect_dialogparent desktopgrid highlightwindow overview tileseditor windowview blendchanges startupfeedback kscreen screentransform Currently Active Effects: ------------------------- Effect Settings: ---------------- colorpicker: outputlocator: screenshot: zoom: zoomFactor: 1.2 mousePointer: 0 mouseTracking: 0 focusTrackingEnabled: false textCaretTrackingEnabled: false focusDelay: 350 moveFactor: 20 targetZoom: 1 kwin4_effect_logout: pluginId: kwin4_effect_logout isActiveFullScreenEffect: false kwin4_effect_sessionquit: pluginId: kwin4_effect_sessionquit isActiveFullScreenEffect: false kwin4_effect_login: pluginId: kwin4_effect_login isActiveFullScreenEffect: false slidingpopups: slideInDuration: 150 slideOutDuration: 250 kwin4_effect_translucency: pluginId: kwin4_effect_translucency isActiveFullScreenEffect: false kwin4_effect_windowaperture: pluginId: kwin4_effect_windowaperture isActiveFullScreenEffect: false slide: horizontalGap: 45 verticalGap: 20 slideBackground: true kwin4_effect_squash: pluginId: kwin4_effect_squash isActiveFullScreenEffect: false kwin4_effect_maximize: pluginId: kwin4_effect_maximize isActiveFullScreenEffect: false kwin4_effect_morphingpopups: pluginId: kwin4_effect_morphingpopups isActiveFullScreenEffect: false kwin4_effect_frozenapp: pluginId: kwin4_effect_frozenapp isActiveFullScreenEffect: false kwin4_effect_fadingpopups: pluginId: kwin4_effect_fadingpopups isActiveFullScreenEffect: false kwin4_effect_fullscreen: pluginId: kwin4_effect_fullscreen isActiveFullScreenEffect: false kwin4_effect_scale: pluginId: kwin4_effect_scale isActiveFullScreenEffect: false kwin4_effect_dialogparent: pluginId: kwin4_effect_dialogparent isActiveFullScreenEffect: false desktopgrid: activeView: gridRows: 1 gridColumns: 1 animationDuration: 300 layout: 1 partialActivationFactor: 0 gestureInProgress: false showAddRemove: true desktopNameAlignment: 0 desktopLayoutMode: 0 customLayoutRows: 2 highlightwindow: overview: activeView: animationDuration: 300 layout: 1 ignoreMinimized: false blurBackground: true partialActivationFactor: 0 gestureInProgress: false searchText: tileseditor: activeView: animationDuration: 200 windowview: activeView: animationDuration: 300 layout: 1 ignoreMinimized: false mode: 115 partialActivationFactor: 0 gestureInProgress: false searchText: blendchanges: startupfeedback: type: 1 kscreen: screentransform: Loaded Plugins: --------------- kwin5_plugin_buttonrebinds kwin5_plugin_colord kwin5_plugin_krunner kwin5_plugin_nightcolor kwin5_plugin_screencast Available Plugins: ------------------ kwin5_plugin_buttonrebinds kwin5_plugin_colord kwin5_plugin_krunner kwin5_plugin_nightcolor kwin5_plugin_screencast ADDITIONAL INFORMATION Backtrace: #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140584554191296) at ./nptl/pthread_kill.c:44 #1 __pthread_kill_internal (signo=6, threadid=140584554191296) at ./nptl/pthread_kill.c:78 #2 __GI___pthread_kill (threadid=140584554191296, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 #3 0x00007fdc67842476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #4 0x00007fdc678287f3 in __GI_abort () at ./stdlib/abort.c:79 #5 0x00007fdc69091ba3 in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914 #6 QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7fffcbf5c9b8, msg=msg@entry=0x7fdc693a3000 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:893 #7 0x00007fdc69090ff0 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at global/qglobal.cpp:3391 #8 0x00007fdc6badb464 in KWin::GLTexture::bind() (this=0x5635bf9364a0) at /media/Development/Linux/Projects/Plasma/kwin2/src/libkwineffects/kwingltexture.cpp:449 #9 0x00007fdc6badb8d7 in KWin::GLTexture::GLTexture(unsigned int, int, int, int, bool) (this=0x5635bf9364a0, internalFormat=32856, width=1408, height=60, levels=1, needsMutability=false) at /media/Development/Linux/Projects/Plasma/kwin2/src/libkwineffects/kwingltexture.cpp:209 #10 0x00007fdc6b21dc55 in KWin::SceneOpenGLDecorationRenderer::resizeTexture() (this=0x5635bf9ed740) at /media/Development/Linux/Projects/Plasma/kwin2/src/scene/workspacescene_opengl.cpp:461 #11 0x00007fdc6b21d59c in KWin::SceneOpenGLDecorationRenderer::render(QRegion const&) (this=0x5635bf9ed740, region=...) at /media/Development/Linux/Projects/Plasma/kwin2/src/scene/workspacescene_opengl.cpp:333 #12 0x00007fdc6b1f13da in KWin::DecorationItem::preprocess() (this=0x5635bf9d9810) at /media/Development/Linux/Projects/Plasma/kwin2/src/scene/decorationitem.cpp:172 #13 0x00007fdc6b1f0ee9 in KWin::DecorationItem::handleWindowClosed(KWin::Window*, KWin::Deleted*) (this=0x5635bf9d9810, original=0x5635bf938e00, deleted=0x5635bf58cad0) at /media/Development/Linux/Projects/Plasma/kwin2/src/scene/decorationitem.cpp:210 #14 0x00007fdc6b1f3b71 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<KWin::Window*, KWin::Deleted*>, void, void (KWin::DecorationItem::*)(KWin::Window*, KWin::Deleted*)>::call(void (KWin::DecorationItem::*)(KWin::Window*, KWin::Deleted*), KWin::DecorationItem*, void**) (f=(void (KWin::DecorationItem::*)(class KWin::DecorationItem * const, class KWin::Window *, class KWin::Deleted *)) 0x7fdc6b1f0ec0 <KWin::DecorationItem::handleWindowClosed(KWin::Window*, KWin::Deleted*)>, o=0x5635bf9d9810, arg=0x7fffcbf5cfc0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152 #15 0x00007fdc6b1f3acd in QtPrivate::FunctionPointer<void (KWin::DecorationItem::*)(KWin::Window*, KWin::Deleted*)>::call<QtPrivate::List<KWin::Window*, KWin::Deleted*>, void>(void (KWin::DecorationItem::*)(KWin::Window*, KWin::Deleted*), KWin::DecorationItem*, void**) (f=(void (KWin::DecorationItem::*)(class KWin::DecorationItem * const, class KWin::Window *, class KWin::Deleted *)) 0x7fdc6b1f0ec0 <KWin::DecorationItem::handleWindowClosed(KWin::Window*, KWin::Deleted*)>, o=0x5635bf9d9810, arg=0x7fffcbf5cfc0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185 #16 0x00007fdc6b1f3a12 in QtPrivate::QSlotObject<void (KWin::DecorationItem::*)(KWin::Window*, KWin::Deleted*), QtPrivate::List<KWin::Window*, KWin::Deleted*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x5635bfa41150, r=0x5635bf9d9810, a=0x7fffcbf5cfc0, ret=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418 #17 0x00007fdc692f40d4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffcbf5cfc0, r=0x5635bf9d9810, this=0x5635bfa41150) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #18 doActivate<false>(QObject*, int, void**) (sender=0x5635bf938e00, signal_index=10, argv=0x7fffcbf5cfc0) at kernel/qobject.cpp:3923 #19 0x00007fdc6b2fc277 in KWin::Window::windowClosed(KWin::Window*, KWin::Deleted*) (this=0x5635bf938e00, _t1=0x5635bf938e00, _t2=0x5635bf58cad0) at kwin_autogen/include/moc_window.cpp:1580 #20 0x00007fdc6b34c351 in KWin::X11Window::destroyWindow() (this=0x5635bf938e00) at /media/Development/Linux/Projects/Plasma/kwin2/src/x11window.cpp:410 #21 0x00007fdc6b11cba6 in KWin::X11Window::destroyNotifyEvent(xcb_destroy_notify_event_t*) (this=0x5635bf938e00, e=0x5635bf7753d0) at /media/Development/Linux/Projects/Plasma/kwin2/src/events.cpp:578 #22 0x00007fdc6b11c11f in KWin::X11Window::windowEvent(xcb_generic_event_t*) (this=0x5635bf938e00, e=0x5635bf7753d0) at /media/Development/Linux/Projects/Plasma/kwin2/src/events.cpp:390 #23 0x00007fdc6b11b110 in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) (this=0x5635bdd78800, e=0x5635bf7753d0) at /media/Development/Linux/Projects/Plasma/kwin2/src/events.cpp:156 #24 0x00007fdc6b199d13 in KWin::Application::dispatchEvent(xcb_generic_event_t*) (this=0x7fffcbf5e640, event=0x5635bf7753d0) at /media/Development/Linux/Projects/Plasma/kwin2/src/main.cpp:490 #25 0x00007fdc6b19a6b6 in KWin::XcbEventFilter::nativeEventFilter(QByteArray const&, void*, long*) (this=0x5635bd861240, eventType=..., message=0x5635bf7753d0, result=0x7fffcbf5d7f0) at /media/Development/Linux/Projects/Plasma/kwin2/src/main.cpp:606 #26 0x00007fdc692b9447 in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (this=<optimized out>, eventType=..., message=0x5635bf7753d0, result=0x7fffcbf5d7f0) at kernel/qabstracteventdispatcher.cpp:495 #27 0x00005635bcf21070 in KWin::Xwl::Xwayland::dispatchEvents() (this=0x5635bdf295e0) at /media/Development/Linux/Projects/Plasma/kwin2/src/xwayland/xwayland.cpp:242 #28 0x00005635bcf2799b in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::Xwl::Xwayland::*)()>::call(void (KWin::Xwl::Xwayland::*)(), KWin::Xwl::Xwayland*, void**) (f=(void (KWin::Xwl::Xwayland::*)(class KWin::Xwl::Xwayland * const)) 0x5635bcf20ee0 <KWin::Xwl::Xwayland::dispatchEvents()>, o=0x5635bdf295e0, arg=0x7fffcbf5da60) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152 #29 0x00005635bcf2790d in QtPrivate::FunctionPointer<void (KWin::Xwl::Xwayland::*)()>::call<QtPrivate::List<>, void>(void (KWin::Xwl::Xwayland::*)(), KWin::Xwl::Xwayland*, void**) (f=(void (KWin::Xwl::Xwayland::*)(class KWin::Xwl::Xwayland * const)) 0x5635bcf20ee0 <KWin::Xwl::Xwayland::dispatchEvents()>, o=0x5635bdf295e0, arg=0x7fffcbf5da60) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185 #30 0x00005635bcf27852 in QtPrivate::QSlotObject<void (KWin::Xwl::Xwayland::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x5635bdbe3770, r=0x5635bdf295e0, a=0x7fffcbf5da60, ret=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418 #31 0x00007fdc692f40d4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffcbf5da60, r=0x5635bdf295e0, this=0x5635bdbe3770) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #32 doActivate<false>(QObject*, int, void**) (sender=0x5635bdbe3850, signal_index=3, argv=0x7fffcbf5da60) at kernel/qobject.cpp:3923 #33 0x00007fdc692ed177 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x5635bdbe3850, m=m@entry=0x7fdc6955d1a0 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffcbf5da60) at kernel/qobject.cpp:3983 #34 0x00007fdc692f7613 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x5635bdbe3850, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178 #35 0x00007fdc692f7e43 in QSocketNotifier::event(QEvent*) (this=0x5635bdbe3850, e=0x7fffcbf5db80) at kernel/qsocketnotifier.cpp:302 #36 0x00007fdc6816c793 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #37 0x00007fdc692bc07a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5635bdbe3850, event=0x7fffcbf5db80) at kernel/qcoreapplication.cpp:1064 #38 0x00007fdc69312dcb in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x5635bd72be90) at kernel/qeventdispatcher_unix.cpp:304 #39 0x00007fdc6931323b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511 #40 0x00005635bd063a51 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () #41 0x00007fdc692ba99b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffcbf5dd10, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #42 0x00007fdc692c2f34 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #43 0x00005635bcef32d2 in main(int, char**) (argc=14, argv=0x7fffcbf5e878) at /media/Development/Linux/Projects/Plasma/kwin2/src/main_wayland.cpp:628 Detaching from program: /usr/bin/kwin_wayland, process 3412 [Inferior 1 (process 3412) detached]
Seems the crash also happens under X11, so it's not limited to just Wayland.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/3649
Git commit 2de5236e3fb4372ebafa6132eddfb16a85a331fc by Vlad Zahorodnii. Committed on 21/02/2023 at 13:22. Pushed by vladz into branch 'master'. scene: Ensure there's current opengl context when DecorationItem is repainted for last time M +1 -0 src/scene/decorationitem.cpp https://invent.kde.org/plasma/kwin/commit/2de5236e3fb4372ebafa6132eddfb16a85a331fc
Git commit be772c7fe3b91aaeb268ba2050977644d1d2435f by Vlad Zahorodnii. Committed on 21/02/2023 at 13:48. Pushed by vladz into branch 'Plasma/5.27'. scene: Ensure there's current opengl context when DecorationItem is repainted for last time (cherry picked from commit 2de5236e3fb4372ebafa6132eddfb16a85a331fc) M +1 -0 src/scene/decorationitem.cpp https://invent.kde.org/plasma/kwin/commit/be772c7fe3b91aaeb268ba2050977644d1d2435f