Bug 466186 - Closing VLC when a video is playing causes kwin assert error crash/restart
Summary: Closing VLC when a video is playing causes kwin assert error crash/restart
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: 5.27.0
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-02-21 07:44 UTC by Mathias Tillman
Modified: 2023-02-22 07:53 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mathias Tillman 2023-02-21 07:44:50 UTC
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]
Comment 1 Mathias Tillman 2023-02-21 09:05:22 UTC
Seems the crash also happens under X11, so it's not limited to just Wayland.
Comment 2 Bug Janitor Service 2023-02-21 11:26:42 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/3649
Comment 3 Vlad Zahorodnii 2023-02-21 13:44:55 UTC
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
Comment 4 Vlad Zahorodnii 2023-02-21 18:49:47 UTC
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