STEPS TO REPRODUCE 1. Click on notification popup OBSERVED RESULT #0 KWin::SurfaceInterface::client() const (this=0x0) at /usr/include/c++/13/bits/unique_ptr.h:199 #1 0x00007fd8ca21962b in KWin::WaylandWindow::belongsToSameApplication(KWin::Window const*, QFlags<KWin::Window::SameApplicationCheck>) const (this=0x260bd80, other=<optimized out>, checks=...) at /home/nico/kde/src/kwin/src/waylandwindow.cpp:136 #2 0x00007fd8ca12b11d in KWin::Workspace::raiseWindowWithinApplication(KWin::Window*) (this=0xa9d1f0, window=0x2d86b00) at /home/nico/kde/usr/include/QtCore/qflags.h:73 #3 0x00007fd8ca12b22b in KWin::Workspace::raiseWindowRequest(KWin::Window*, NET::RequestSource, unsigned int) (src=<optimized out>, timestamp=<optimized out>, window=0x2d86b00, this=0xa9d1f0) at /home/nico/kde/src/kwin/src/layers.cpp:409 #4 KWin::Workspace::raiseWindowRequest(KWin::Window*, NET::RequestSource, unsigned int) (this=0xa9d1f0, window=0x2d86b00, src=<optimized out>, timestamp=<optimized out>) at /home/nico/kde/src/kwin/src/layers.cpp:404 #5 0x00007fd8ca12b377 in KWin::X11Window::restackWindow(unsigned int, int, NET::RequestSource, unsigned int, bool) (this=0x2d86b00, above=<optimized out>, detail=<optimized out>, src=<optimized out>, timestamp=61299748, send_event=false) at /home/nico/kde/src/kwin/src/workspace.h:830 #6 0x00007fd8ca0d993a in KWin::X11Window::configureRequestEvent(xcb_configure_request_event_t*) (e=0x2424cb0, this=0x2d86b00) at /home/nico/kde/src/kwin/src/events.cpp:731 #7 KWin::X11Window::configureRequestEvent(xcb_configure_request_event_t*) (this=0x2d86b00, e=0x2424cb0) at /home/nico/kde/src/kwin/src/events.cpp:702 #8 0x00007fd8ca0dc4a3 in KWin::X11Window::windowEvent(xcb_generic_event_t*) (this=0x2d86b00, e=e@entry=0x2424cb0) at /home/nico/kde/src/kwin/src/events.cpp:460 #9 0x00007fd8ca0dc91a in KWin::Workspace::workspaceEvent(xcb_generic_event_t*) (this=0xa9d1f0, e=0x2424cb0) at /home/nico/kde/src/kwin/src/events.cpp:165 #10 0x00007fd8c6d5730f in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long long*) (this=<optimized out>, eventType=..., message=message@entry=0x2424cb0, result=result@entry=0x7ffe0aff56b8) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qabstracteventdispatcher.cpp:432 #11 0x0000000000454bb2 in KWin::Xwl::Xwayland::dispatchEvents(KWin::Xwl::Xwayland::DispatchEventsMode) (this=<optimized out>, mode=<optimized out>) at /home/nico/kde/src/kwin/src/xwayland/xwayland.cpp:247 #12 0x00007fd8c6db5fa3 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe0aff57e0, r=0x11d5c30, this=0x2097f00) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:433 #13 doActivate<false>(QObject*, int, void**) (sender=0x1ed0530, signal_index=3, argv=0x7ffe0aff57e0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4021 #14 0x00007fd8c6dadcdf in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x1ed0530, m=m@entry=0x7fd8c720c000 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe0aff57e0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4081 #15 0x00007fd8c6dc26af in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x1ed0530, _t1=..., _t2=<optimized out>, _t3=...) at /home/nico/workspace/qt6/qtbase/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:231 #16 0x00007fd8c6dc2d9d in QSocketNotifier::event(QEvent*) (this=0x1ed0530, e=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qsocketnotifier.cpp:326 #17 0x00007fd8c817f981 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x1ed0530, e=0x7ffe0aff58f0) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3295 #18 0x00007fd8c6d59b08 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x1ed0530, event=0x7ffe0aff58f0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1119 #19 0x00007fd8c6d59c89 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1537 #20 0x00007fd8c6eeb73e in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=this@entry=0x963ce0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:268 #21 0x00007fd8c6eebda9 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:477 #22 0x00007fd8c7aaae3d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/nico/workspace/qt6/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:27 #23 0x00007fd8c6d656bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe0aff5a80, flags=..., flags@entry=...) at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:34 #24 0x00007fd8c6d620c2 in QCoreApplication::exec() () at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:74 --Type <RET> for more, q to quit, c to continue without paging--c #25 0x00007fd8c75b050c in QGuiApplication::exec() () at /home/nico/workspace/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:1925 #26 0x00007fd8c817f8f5 in QApplication::exec() () at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:2574 #27 0x000000000043d5b7 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde/src/kwin/src/main_wayland.cpp:607 KDE Plasma Version: master KDE Frameworks Version: master Qt Version: 6.6 ADDITIONAL INFORMATION kwin commit 2dd1c780309e5bcb533d5c84fb2808cd3917fe87
previously the same thing crashed with a different backtrace: #0 0x00007f17e9b8e090 in std::default_delete<KWin::SurfaceState>::operator()(KWin::SurfaceState*) const (this=<optimized out>, __ptr=0x3a70230) at /usr/include/c++/13/bits/unique_ptr.h:93 #1 std::default_delete<KWin::SurfaceState>::operator()(KWin::SurfaceState*) const (__ptr=0x3a70230, this=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:93 #2 std::unique_ptr<KWin::SurfaceState, std::default_delete<KWin::SurfaceState> >::~unique_ptr() (this=0x1c32840, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404 #3 KWin::TransactionEntry::~TransactionEntry() (this=0x1c32820, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/wayland/transaction.h:27 #4 std::destroy_at<KWin::TransactionEntry>(KWin::TransactionEntry*) (__location=0x1c32820) at /usr/include/c++/13/bits/stl_construct.h:88 #5 std::_Destroy<KWin::TransactionEntry>(KWin::TransactionEntry*) (__pointer=0x1c32820) at /usr/include/c++/13/bits/stl_construct.h:149 #6 std::_Destroy_aux<false>::__destroy<KWin::TransactionEntry*>(KWin::TransactionEntry*, KWin::TransactionEntry*) (__last=0x0, __first=0x1c32820) at /usr/include/c++/13/bits/stl_construct.h:163 #7 std::_Destroy<KWin::TransactionEntry*>(KWin::TransactionEntry*, KWin::TransactionEntry*) (__last=0x0, __first=<optimized out>) at /usr/include/c++/13/bits/stl_construct.h:196 #8 std::_Destroy<KWin::TransactionEntry*, KWin::TransactionEntry>(KWin::TransactionEntry*, KWin::TransactionEntry*, std::allocator<KWin::TransactionEntry>&) (__last=0x0, __first=<optimized out>) at /usr/include/c++/13/bits/alloc_traits.h:947 #9 std::vector<KWin::TransactionEntry, std::allocator<KWin::TransactionEntry> >::~vector() (this=0xa29b80, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_vector.h:732 #10 KWin::Transaction::~Transaction() (this=0xa29b80, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/wayland/transaction.h:55 #11 KWin::SurfaceInterface::~SurfaceInterface() (this=0x60, __in_chrg=<optimized out>) at /home/nico/kde/src/kwin/src/wayland/surface.cpp:421 #12 0x0000000000a29b80 in () #13 0x00007f17e992a07d in QArrayDataPointer<unsigned int>::tryReadjustFreeSpace(QArrayData::GrowthPosition, long long, unsigned int const**) (data=<optimized out>, n=<optimized out>, pos=<optimized out>, this=<optimized out>) at /home/nico/kde/usr/include/QtCore/qarraydatapointer.h:284 #14 QArrayDataPointer<unsigned int>::detachAndGrow(QArrayData::GrowthPosition, long long, unsigned int const**, QArrayDataPointer<unsigned int>*) (this=0x7f17e9a184eb <KWin::WaylandWindow::updateGeometry(QRectF const&)+91>, where=(unknown: 0x1fe9130), n=0, data=0x3a70230, old=0x0) at /home/nico/kde/usr/include/QtCore/qarraydatapointer.h:196 #15 0x0000000001fe9130 in () #16 0x00007fff75582930 in () #17 0x0000000001fe9130 in () #18 0x0000000000000000 in ()
This might be related to having an external screen connected
This seems to only happen while in a Zoom meeting
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4727
Git commit 5e90452d0870e2ef3fcd4d6af1b5e41c07ca20c5 by Vlad Zahorodnii. Committed on 29/11/2023 at 14:56. Pushed by vladz into branch 'master'. Add more closed window checks The stack contains closed windows, so we need to guard against them. M +10 -4 src/layers.cpp https://invent.kde.org/plasma/kwin/-/commit/5e90452d0870e2ef3fcd4d6af1b5e41c07ca20c5
*** Bug 477868 has been marked as a duplicate of this bug. ***