SUMMARY Clicking "Check for Updates" in PyCharm causes a crash in KWin::Group::icon() Full backtrace: https://invent.kde.org/-/snippets/2700 STEPS TO REPRODUCE 1. Download and start PyCharm Community Edition 2. Click Help -> Check for Updates OBSERVED RESULT KWin crashes and restarts EXPECTED RESULT No crash SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.27.80 KDE Frameworks Version: 5.240.0 Qt Version: 6.5.1 Kernel Version: 6.3.6-arch1-1-custom (64-bit) Graphics Platform: Wayland Processors: 12 × AMD Ryzen 5 5600X 6-Core Processor Memory: 15.5 GiB of RAM Graphics Processor: AMD Radeon Graphics Manufacturer: Micro-Star International Co., Ltd. Product Name: MS-7B85 System Version: 1.0
#0 0x00007fc950732fae in KWin::Group::icon() const (this=0x0) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/group.cpp:46 #1 0x00007fc9509c1f89 in KWin::X11Window::getIcons() (this=0x562933fb3a40) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/x11window.cpp:2437 themedIconName = {d = {d = 0x0, ptr = 0x0, size = 0}, static _empty = 0 u'\000'} icon = {d = 0x0} readIcon = {__this = 0x562933fb3a40, __icon = @0x7ffdcd43e0a0} #2 0x00007fc95070e114 in KWin::X11Window::propertyNotifyEvent(xcb_property_notify_event_t*) (this=0x562933fb3a40, e=0x562933d12a30) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/events.cpp:767 #3 0x00007fc95070cbb1 in KWin::X11Window::windowEvent(xcb_generic_event_t*) (this=0x562933fb3a40, e=0x562933d12a30) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/events.cpp:365 dirtyProperties = {i = 0} dirtyProperties2 = {i = 56623112} eventType = 28 '\034' eventType = 0 '\000' #4 0x00007fc95070c257 in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) (this=0x562932b7b8a0, e=0x562933d12a30) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/events.cpp:169 window = 0x562933fb3a40 window = 0x0 window = 0x0 window = 0x0 window = 0x0 eventType = 28 '\034' eventWindow = 58720650 #5 0x00007fc9507be84f in KWin::Application::dispatchEvent(xcb_generic_event_t*) (this=0x7ffdcd43f210, event=0x562933d12a30) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/main.cpp:480 s_xcbEerrors = {<QListSpecialMethods<QByteArray>> = {<QListSpecialMethodsBase<QByteArray>> = {<No data fields>}, <No data fields>}, d = {d = 0x56293377c590, ptr = 0x56293377c5a0, size = 19}} x11EventType = 28 '\034' __PRETTY_FUNCTION__ = "bool KWin::Application::dispatchEvent(xcb_generic_event_t*)" #6 0x00007fc9507beb67 in KWin::XcbEventFilter::nativeEventFilter(QByteArray const&, void*, long long*) (this=0x56293239af00, eventType=..., message=0x562933d12a30, result=0x7ffdcd43e8a8) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/main.cpp:592 #7 0x00007fc94c737bff in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long long*) (this=<optimized out>, eventType=..., message=0x562933d12a30, result=0x7ffdcd43e8a8) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qabstracteventdispatcher.cpp:423 filter = <optimized out> i = 4 scopeLevelCounter = {threadData = 0x5629322385e0} d = 0x56293227e6d0 #8 0x000056293095e6c9 in KWin::Xwl::Xwayland::dispatchEvents(KWin::Xwl::Xwayland::DispatchEventsMode) (this=0x56293257c6a0, mode=KWin::Xwl::Xwayland::DispatchEventsMode::Poll) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/xwayland/xwayland.cpp:248 event = 0x562933d12a30 result = 0 dispatcher = 0x56293223b070 connection = 0x5629339c48c0 __PRETTY_FUNCTION__ = "void KWin::Xwl::Xwayland::dispatchEvents(DispatchEventsMode)" connectionError = 0 pollEventFunc = 0x7fc94ec6ad00 <xcb_poll_for_event> #9 0x000056293095e738 in operator()() const (__closure=0x56293391b830) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/xwayland/xwayland.cpp:261 this = 0x56293257c6a0 fileDescriptor = 0 dispatcher = 0x3 #10 0x00005629309601fd in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::Xwl::Xwayland::installSocketNotifier()::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7ffdcd43eb30) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:127 #11 0x000056293096017b in QtPrivate::Functor<KWin::Xwl::Xwayland::installSocketNotifier()::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffdcd43eb30) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:241 #12 0x0000562930960036 in QtPrivate::QFunctorSlotObject<KWin::Xwl::Xwayland::installSocketNotifier()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x56293391b820, r=0x56293257c6a0, a=0x7ffdcd43eb30, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:409 #13 0x00007fc94c7915d9 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdcd43eb30, r=0x56293257c6a0, this=0x56293391b820, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qobjectdefs_impl.h:363 obj = {m_slotObject = 0x56293391b820} receiver = 0x56293257c6a0 td = <optimized out> receiverInSameThread = <optimized out> senderData = {previous = 0x0, receiver = 0x56293257c6a0, sender = 0x5629327baa60, signal = 3} c = 0x56293283a6b0 connections = {d = 0x5629336e6510} list = <optimized out> inSenderThread = <optimized out> highestConnectionId = <optimized out> signalVector = <optimized out> currentThreadId = <optimized out> sp = <optimized out> signal_spy_set = 0x0 empty_argv = {0x0} senderDeleted = false #14 doActivate<false>(QObject*, int, void**) (sender=0x5629327baa60, signal_index=3, argv=0x7ffdcd43eb30) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qobject.cpp:3992 obj = {m_slotObject = 0x56293391b820} receiver = 0x56293257c6a0 td = <optimized out> receiverInSameThread = <optimized out> senderData = {previous = 0x0, receiver = 0x56293257c6a0, sender = 0x5629327baa60, signal = 3} c = 0x56293283a6b0 connections = {d = 0x5629336e6510} list = <optimized out> inSenderThread = <optimized out> highestConnectionId = <optimized out> signalVector = <optimized out> currentThreadId = <optimized out> sp = <optimized out> signal_spy_set = 0x0 empty_argv = {0x0} senderDeleted = false #15 0x00007fc94c79a020 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (_t3=..., _t2=<optimized out>, _t1=..., this=0x5629327baa60) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:231 _a = {0x0, 0x7ffdcd43eaf8, 0x7ffdcd43eafc, 0x7ffdcd43eaf3} alive = {wp = {d = 0x5629328385f0, value = 0x5629327baa60}} d = 0x5629328377f0 #16 QSocketNotifier::event(QEvent*) (this=0x5629327baa60, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qsocketnotifier.cpp:326 alive = {wp = {d = 0x5629328385f0, value = 0x5629327baa60}} d = 0x5629328377f0 #17 0x00007fc94d77145b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x5629327baa60, e=0x7ffdcd43ec30) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/widgets/kernel/qapplication.cpp:3287 consumed = false filtered = false #18 0x00007fc94c73aad8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5629327baa60, event=0x7ffdcd43ec30) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qcoreapplication.cpp:1115 selfRequired = <optimized out> result = false cbdata = {0x5629327baa60, 0x7ffdcd43ec30, 0x7ffdcd43ebdf} d = <optimized out> threadData = 0x5629322385e0 scopeLevelCounter = {threadData = 0x5629322385e0} #19 0x00007fc94c867ad9 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7ffdcd43ec30, receiver=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qcoreapplication.cpp:1533 notifier = <optimized out> n_activated = 0 event = {_vptr.QEvent = 0x7fc94cb6c200 <vtable for QEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7fc94c9e9fa0 <(anonymous namespace)::qt_meta_stringdata_CLASSQEventENDCLASS>, data = 0x7fc94c9e99e0 <qt_meta_data_CLASSQEventENDCLASS>, static_metacall = 0x0, relatedMetaObjects = 0x0, metaTypes = 0x7fc94cb6c2a8 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSQEventENDCLASS_t, QtPrivate::TypeAndForceComplete<QEvent, std::integral_constant<bool, true> > >>, extradata = 0x0}}, t = 50, m_posted = false, m_spont = false, m_accept = true, m_unused = false, m_reserved = 0, m_inputEvent = 0, m_pointerEvent = 0, m_singlePointEvent = 0} #20 QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x56293227e6d0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qeventdispatcher_unix.cpp:268 notifier = <optimized out> n_activated = 0 event = {_vptr.QEvent = 0x7fc94cb6c200 <vtable for QEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7fc94c9e9fa0 <(anonymous namespace)::qt_meta_stringdata_CLASSQEventENDCLASS>, data = 0x7fc94c9e99e0 <qt_meta_data_CLASSQEventENDCLASS>, static_metacall = 0x0, relatedMetaObjects = 0x0, metaTypes = 0x7fc94cb6c2a8 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSQEventENDCLASS_t, QtPrivate::TypeAndForceComplete<QEvent, std::integral_constant<bool, true> > >>, extradata = 0x0}}, t = 50, m_posted = false, m_spont = false, m_accept = true, m_unused = false, m_reserved = 0, m_inputEvent = 0, m_pointerEvent = 0, m_singlePointEvent = 0} #21 0x00007fc94c87110c in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qeventdispatcher_unix.cpp:477 d = 0x56293227e6d0 threadData = <optimized out> include_timers = <optimized out> include_notifiers = <optimized out> wait_for_events = <optimized out> canWait = <optimized out> tm = 0x7ffdcd43ecc0 wait_tm = {tv_sec = 15, tv_nsec = 346000000} nevents = 0 #22 0x00007fc94d1dfe82 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/gui/platform/unix/qunixeventdispatcher.cpp:27 didSendEvents = <optimized out> #23 0x00007fc94c744cd3 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=..., this=0x7ffdcd43ee10) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qeventloop.cpp:100 d = <optimized out> threadData = <optimized out> d = 0x562932890390 threadData = <optimized out> locker = {m_mutex = <optimized out>, m_isLocked = false} app = 0x7ffdcd43f210 #24 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffdcd43ee10, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/kernel/qeventloop.cpp:182 d = 0x562932890390 threadData = <optimized out> locker = {m_mutex = <optimized out>, m_isLocked = false} app = 0x7ffdcd43f210 #25 0x00007fc94c73e378 in QCoreApplication::exec() () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.5.1/src/corelib/global/qflags.h:74 threadData = 0x5629322385e0 eventLoop = {<QObject> = {_vptr.QObject = 0x7fc94cb671d0 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7fc94c9b2900 <_ZN12_GLOBAL__N_1L39qt_meta_stringdata_CLASSQObjectENDCLASSE.lto_priv.0>, data = 0x7fc94c9b27c0 <_ZL33qt_meta_data_CLASSQObjectENDCLASS.lto_priv.0>, static_metacall = 0x7fc94c78c140 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7fc94cb6aba0 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_141qt_meta_stringdata_CLASSQObjectENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEENS3_I7QObjectS6_EENS3_IvS5_IbLb0EEEENS3_IPS8_SA_EESB_SB_NS3_IRKS4_SA_EESB_SB_NS3_IPvSA_EESD_EE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x562932890390}}, static staticMetaObject = {d = {superdata = {direct = 0x7fc94cb6ac60 <QObject::staticMetaObject>}, stringdata = 0x7fc94c9b16e0 <_ZN12_GLOBAL__N_1L42qt_meta_stringdata_CLASSQEventLoopENDCLASSE.lto_priv.0>, data = 0x7fc94c9b15e0 <_ZL36qt_meta_data_CLASSQEventLoopENDCLASS.lto_priv.0>, static_metacall = 0x7fc94c742140 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7fc94cb6a4a0 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_144qt_meta_stringdata_CLASSQEventLoopENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI10QEventLoopSt17integral_constantIbLb1EEEENS3_IvS5_IbLb0EEEENS3_IiS8_EES9_S9_EE.lto_priv.0>, extradata = 0x0}}} returnCode = <optimized out> #26 0x0000562930995b32 in main(int, char**) (argc=14, argv=0x7ffdcd43f508) at /run/media/valmar/DataSSD/KDE/Sources/plasma/kwin/src/main_wayland.cpp:613 environment = {d = {d = 0x562932233d20}} a = {<KWin::Application> = {<QApplication> = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x562930b973e8 <vtable for KWin::ApplicationWayland+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7fc94c9b2900 <_ZN12_GLOBAL__N_1L39qt_meta_stringdata_CLASSQObjectENDCLASSE.lto_priv.0>, data = 0x7fc94c9b27c0 <_ZL33qt_meta_data_CLASSQObjectENDCLASS.lto_priv.0>, static_metacall = 0x7fc94c78c140 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7fc94cb6aba0 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_141qt_meta_stringdata_CLASSQObjectENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEENS3_I7QObjectS6_EENS3_IvS5_IbLb0EEEENS3_IPS8_SA_EESB_SB_NS3_IRKS4_SA_EESB_SB_NS3_IPvSA_EESD_EE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x562932238400}}, static staticMetaObject = {d = {superdata = {direct = 0x7fc94cb6ac60 <QObject::staticMetaObject>}, stringdata = 0x7fc94c9b19e0 <_ZN12_GLOBAL__N_1L48qt_meta_stringdata_CLASSQCoreApplicationENDCLASSE.lto_priv.0>, data = 0x7fc94c9b1840 <_ZL42qt_meta_data_CLASSQCoreApplicationENDCLASS.lto_priv.0>, static_metacall = 0x7fc94c743e50 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7fc94cb6a520 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_150qt_meta_stringdata_CLASSQCoreApplicationENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEES7_S7_S7_NS3_IbS6_EENS3_I16QCoreApplicationS6_EENS3_IvS5_IbLb0EEEESC_SC_SC_SC_SC_SC_NS3_IiSB_EESC_EE.lto_priv.0>, extradata = 0x0}}, static self = 0x7ffdcd43f210}, static staticMetaObject = {d = {superdata = {direct = 0x7fc94cb6a5a0 <QCoreApplication::staticMetaObject>}, stringdata = 0x7fc94d2ccf40 <_ZN12_GLOBAL__N_1L47qt_meta_stringdata_CLASSQGuiApplicationENDCLASSE.lto_priv.0>, data = 0x7fc94d2ccc40 <_ZL41qt_meta_data_CLASSQGuiApplicationENDCLASS.lto_priv.0>, static_metacall = 0x7fc94cdb3e50 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7fc94d41dca0 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_149qt_meta_stringdata_CLASSQGuiApplicationENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI5QIconSt17integral_constantIbLb1EEEENS3_I7QStringS6_EES9_NS3_IN2Qt15LayoutDirectionES6_EES9_NS3_IbS6_EENS3_IP7QScreenS6_EENS3_I15QGuiApplicationS6_EENS3_IvS5_IbLb0EEEESK_NS3_ISF_SJ_EESK_SL_SK_SL_SK_SK_NS3_IP7QObjectSJ_EESK_NS3_IP7QWindowSJ_EESK_NS3_INSA_16ApplicationStateESJ_EESK_NS3_ISB_SJ_EESK_NS3_IR15QSessionManagerSJ_EESK_SX_SK_SK_NS3_IRK8QPaletteSJ_EESK_NS3_IRK5QFontSJ_EESK_NS3_IxSJ_EESK_SO_EE.lto_priv.0>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7fc94d41e140 <QGuiApplication::staticMetaObject>}, stringdata = 0x7fc94dbcedc0 <_ZN12_GLOBAL__N_1L44qt_meta_stringdata_CLASSQApplicationENDCLASSE.lto_priv.0>, data = 0x7fc94dbcec20 <_ZL38qt_meta_data_CLASSQApplicationENDCLASS.lto_priv.0>, static_metacall = 0x7fc94d77d170 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7fc94dd266a0 <_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_146qt_meta_stringdata_CLASSQApplicationENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteIiSt17integral_constantIbLb1EEEES6_S6_S6_S6_S6_NS3_I7QStringS5_EENS3_IbS5_EENS3_I12QApplicationS5_EENS3_IvS4_IbLb0EEEENS3_IP7QWidgetSC_EESG_SD_NS3_IRKS7_SC_EESD_NS3_IKbSC_EESD_SD_EE.lto_priv.0>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7fc94dd26d80 <QApplication::staticMetaObject>}, stringdata = 0x7fc950cc5200 <(anonymous namespace)::qt_meta_stringdata_CLASSKWinSCOPEApplicationENDCLASS>, data = 0x7fc950cc53c0 <qt_meta_data_CLASSKWinSCOPEApplicationENDCLASS>, static_metacall = 0x7fc95058d30a <KWin::Application::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7fc95115bd40 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSKWinSCOPEApplicationENDCLASS_t, QtPrivate::TypeAndForceComplete<unsigned int, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<unsigned int, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void*, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QExplicitlySharedDataPointer<KSharedConfig>, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QExplicitlySharedDataPointer<KSharedConfig>, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<KWin::Application, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> > >>, extradata = 0x0}}, m_eventFilters = {<QListSpecialMethods<QPointer<KWin::X11EventFilterContainer> >> = {<QListSpecialMethodsBase<QPointer<KWin::X11EventFilterContainer> >> = {<No data fields>}, <No data fields>}, d = {d = 0x562933a074e0, ptr = 0x562933a074f0, size = 4}}, m_genericEventFilters = {<QListSpecialMethods<QPointer<KWin::X11EventFilterContainer> >> = {<QListSpecialMethodsBase<QPointer<KWin::X11EventFilterContainer> >> = {<No data fields>}, <No data fields>}, d = {d = 0x0, ptr = 0x0, size = 0}}, m_eventFilter = std::unique_ptr<KWin::XcbEventFilter> = {get() = 0x56293239af00}, m_followLocale1 = false, m_configLock = false, m_config = {d = 0x56293239af50}, m_kxkbConfig = {d = 0x56293258c930}, m_operationMode = KWin::Application::OperationModeXwayland, m_x11Time = 34291658, m_rootWindow = 975, m_connection = 0x5629339c48c0, m_useKActivities = true, m_session = std::unique_ptr<KWin::Session> = {get() = 0x5629325942b0}, m_outputBackend = std::unique_ptr<KWin::OutputBackend> = {get() = 0x56293258b9d0}, m_terminating = false, m_xwaylandScale = 1, m_processEnvironment = {d = {d = 0x562932f13ab0}}, m_pluginManager = std::unique_ptr<KWin::PluginManager> = {get() = 0x562932d0c920}, m_inputMethod = std::unique_ptr<KWin::InputMethod> = {get() = 0x562932895830}, m_colorManager = std::unique_ptr<KWin::ColorManager> = {get() = 0x56293225fad0}, m_tabletModeManager = std::unique_ptr<KWin::TabletModeManager> = {get() = 0x56293288d000}, m_screenLockerWatcher = std::unique_ptr<KWin::ScreenLockerWatcher> = {get() = 0x562932598690}}, static staticMetaObject = {d = {superdata = {direct = 0x7fc951157160 <KWin::Application::staticMetaObject>}, stringdata = 0x562930acbf40 <(anonymous namespace)::qt_meta_stringdata_CLASSKWinSCOPEApplicationWaylandENDCLASS>, data = 0x562930acbf80 <qt_meta_data_CLASSKWinSCOPEApplicationWaylandENDCLASS>, static_metacall = 0x562930991084 <KWin::ApplicationWayland::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x562930b943d0 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSKWinSCOPEApplicationWaylandENDCLASS_t, QtPrivate::TypeAndForceComplete<KWin::ApplicationWayland, std::integral_constant<bool, true> > >>, extradata = 0x0}}, m_startXWayland = true, m_applicationsToStart = {<QListSpecialMethods<QString>> = {<QListSpecialMethodsBase<QString>> = {<No data fields>}, <No data fields>}, d = {d = 0x0, ptr = 0x0, size = 0}}, m_inputMethodServerToStart = {d = {d = 0x0, ptr = 0x0, size = 0}}, m_sessionArgument = {d = {d = 0x0, ptr = 0x0, size = 0}}, m_xwayland = std::unique_ptr<KWin::Xwl::Xwayland> = {get() = 0x56293257c6a0}, m_xwaylandListenFds = {<QListSpecialMethods<int>> = {<QListSpecialMethodsBase<int>> = {<No data fields>}, <No data fields>}, d = {d = 0x562932583b40, ptr = 0x562932583b50, size = 2}}, m_xwaylandDisplay = {d = {d = 0x562932581530, ptr = 0x562932581540 u":0", size = 2}}, m_xwaylandXauthority = {d = {d = 0x5629325850b0, ptr = 0x5629325850c0 u"/run/user/1000/xauth_BFnobo", size = 27}}, m_settingsWatcher = {value = 0x562932589260, d = 0x5629325892f0}} xwaylandOption = {d = {d = 0x5629325906f0}} waylandSocketOption = {d = {d = 0x562932590790}} x11DisplayOption = {d = {d = 0x562932590870}} waylandDisplayOption = {d = {d = 0x562932590940}} virtualFbOption = {d = {d = 0x562932590a10}} widthOption = {d = {d = 0x562932590bb0}} heightOption = {d = {d = 0x562932590c80}} scaleOption = {d = {d = 0x5629325886f0}} outputCountOption = {d = {d = 0x5629325887d0}} waylandSocketFdOption = {d = {d = 0x562932588890}} xwaylandListenFdOption = {d = {d = 0x562932588930}} xwaylandDisplayOption = {d = {d = 0x562932588b70}} xwaylandXAuthorityOption = {d = {d = 0x562932588cd0}} replaceOption = {d = {d = 0x562932588e00}} drmOption = {d = {d = 0x562932580e60}} locale1Option = {d = {d = 0x562932580f30}} parser = {d = 0x5629325839e0} inputMethodOption = {d = {d = 0x56293257e810}} screenLockerOption = {d = {d = 0x56293257e940}} noScreenLockerOption = {d = {d = 0x562932584e80}} noGlobalShortcutsOption = {d = {d = 0x562932584f50}} noActivitiesOption = {d = {d = 0x562932585030}} exitWithSessionOption = {d = {d = 0x562932585160}} backendType = BackendType::Kms pluginName = {d = {d = 0x0, ptr = 0x0, size = 0}, static _empty = 0 u'\000'} initialWindowSize = {wd = 1024, ht = 768} outputCount = 1 outputScale = 1 __PRETTY_FUNCTION__ = "int main(int, char**)" ok = true width = 1024 height = 768 scale = 1 count = 1 server = 0x5629322647b0 flags = {i = 0} socketName = {d = {d = 0x56293258e490, ptr = 0x56293258e4a0 u"wayland-0", size = 9}, static _empty = 0 u'\000'}
Can reproduce. I believe the path is: - client gets released (presumably unmapped?) - we clear grouping - they update an icon property A guard is trivial if that's the right direction.
(In reply to David Edmundson from comment #2) > Can reproduce. > > I believe the path is: > - client gets released (presumably unmapped?) > - we clear grouping > - they update an icon property > > A guard is trivial if that's the right direction. The assumption is that X11Window::windowEvent() won't be called if the window has been released or destroyed, so it lacks corresponding checks.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4172
Git commit 984af8f4f2eb1a39e26756867f953b456551c7ff by Vlad Zahorodnii. Committed on 12/06/2023 at 09:58. Pushed by vladz into branch 'master'. x11: Prevent handling some override-redirect window properties It appears PyCharm can change WM_HINTS propery of override-redirect windows when they are closed, which triggers a crash in kwin. This change adds the corresponding guard. In addition to the icons, it adds a few more guards to prevent kwin crashing when a rogue client sets wrong properties on an override redirect window. M +9 -0 src/x11window.cpp https://invent.kde.org/plasma/kwin/-/commit/984af8f4f2eb1a39e26756867f953b456551c7ff