Bug 470874 - KWin Wayland crash in KWin::Group::icon()
Summary: KWin Wayland crash in KWin::Group::icon()
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: git master
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2023-06-10 13:35 UTC by Kyle Devir
Modified: 2023-06-17 03:52 UTC (History)
4 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kyle Devir 2023-06-10 13:35:45 UTC
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
Comment 1 Nicolas Fella 2023-06-10 14:16:13 UTC
#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'}
Comment 2 David Edmundson 2023-06-11 21:28:40 UTC
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.
Comment 3 Vlad Zahorodnii 2023-06-12 07:47:07 UTC
(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.
Comment 4 Bug Janitor Service 2023-06-12 08:11:44 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4172
Comment 5 Vlad Zahorodnii 2023-06-12 10:10:00 UTC
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