Bug 479234 - kwin_wayland crashed in KWin::EffectWindow::surface() after clicking on a non-focused app in the task manager
Summary: kwin_wayland crashed in KWin::EffectWindow::surface() after clicking on a non...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (other bugs)
Version First Reported In: 5.90.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: qt6, wayland-only
Depends on:
Blocks:
 
Reported: 2023-12-31 21:19 UTC by Patrick Silva
Modified: 2024-01-12 14:27 UTC (History)
2 users (show)

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


Attachments
long backtrace (71.04 KB, text/plain)
2023-12-31 21:19 UTC, Patrick Silva
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2023-12-31 21:19:49 UTC
Created attachment 164581 [details]
long backtrace

SUMMARY
kwin_wayland crashed after click on a non-focused app (Juk music player) in the task manager - possibly the app was frozen.

Operating System: Arch Linux 
KDE Plasma Version: 5.91.0
KDE Frameworks Version: 5.247.0
Qt Version: 6.7.0
Graphics Platform: Wayland
Comment 1 Nicolas Fella 2024-01-01 17:56:52 UTC
#0  KWin::EffectWindow::surface() const (this=0x0) at /usr/include/c++/13.2.1/bits/unique_ptr.h:199
#1  0x000055ec5fca8871 in KWin::BlurEffect::slotWindowAdded(KWin::EffectWindow*) (this=0x55ec60f94f70, w=0x0) at /usr/src/debug/kwin/kwin-5.91.0/src/plugins/blur/blur.cpp:259
#2  0x00007f71dd1beaa9 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe902a1ee0, r=0x55ec60f94f70, this=0x55ec61cbf1e0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobjectdefs_impl.h:469
#3  doActivate<false>(QObject*, int, void**) (sender=0x55ec61bfc310, signal_index=14, argv=0x7ffe902a1ee0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobject.cpp:4044
#4  0x00007f71dfe32737 in KWin::EffectsHandler::windowAdded(KWin::EffectWindow*) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_effecthandler.cpp:1376
#5  0x00007f71dd1beaa9 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe902a2000, r=0x55ec61bfc310, this=0x55ec611c2280, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobjectdefs_impl.h:469
#6  doActivate<false>(QObject*, int, void**) (sender=0x55ec60cc0b00, signal_index=9, argv=0x7ffe902a2000) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobject.cpp:4044
#7  0x00007f71dffc3f47 in KWin::Workspace::windowAdded(KWin::Window*) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_workspace.cpp:879
#8  0x00007f71dd1beaa9 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe902a2120, r=0x55ec60cc0b00, this=0x55ec611aa680, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobjectdefs_impl.h:469
#9  doActivate<false>(QObject*, int, void**) (sender=0x55ec60cc98d0, signal_index=3, argv=0x7ffe902a2120) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobject.cpp:4044
#10 0x00007f71dff8ab24 in KWin::WaylandServer::windowAdded(KWin::Window*) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_wayland_server.cpp:195
#11 0x00007f71dd1beaa9 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe902a2240, r=0x55ec60cc98d0, this=0x55ec6292ab60, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobjectdefs_impl.h:469
#12 doActivate<false>(QObject*, int, void**) (sender=0x55ec622d1f40, signal_index=9, argv=0x7ffe902a2240) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobject.cpp:4044
#13 0x00007f71dffa7057 in KWin::Window::windowShown(KWin::Window*) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_window.cpp:1490
#14 0x00007f71dfff9dc9 in KWin::XdgToplevelWindow::doMinimize() (this=0x55ec622d1f40) at /usr/src/debug/kwin/kwin-5.91.0/src/xdgshellwindow.cpp:714
#15 0x00007f71dff97041 in KWin::Window::setMinimized(bool) (this=0x55ec622d1f40, set=<optimized out>) at /usr/src/debug/kwin/kwin-5.91.0/src/window.cpp:996
#16 0x00007f71dd1beaa9 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe902a23a0, r=0x55ec622d1f40, this=0x55ec61d71780, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobjectdefs_impl.h:469
#17 doActivate<false>(QObject*, int, void**) (sender=0x55ec6349d090, signal_index=7, argv=0x7ffe902a23a0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobject.cpp:4044
#18 0x00007f71e00d1867 in KWin::PlasmaWindowInterface::minimizedRequested(bool) (this=<optimized out>, _t1=<optimized out>, _t1@entry=false) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_plasmawindowmanagement.cpp:720
#19 0x00007f71e00d20f0 in KWin::PlasmaWindowInterfacePrivate::org_kde_plasma_window_set_state(QtWaylandServer::org_kde_plasma_window::Resource*, unsigned int, unsigned int) (this=0x55ec63499010, resource=<optimized out>, flags=2, state=0) at /usr/src/debug/kwin/kwin-5.91.0/src/wayland/plasmawindowmanagement.cpp:672
#20 0x00007f71dbb514f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#21 0x00007f71dbb4df5e in ffi_call_int (cif=cif@entry=0x7ffe902a25a0, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#22 0x00007f71dbb50b73 in ffi_call (cif=cif@entry=0x7ffe902a25a0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffe902a2670) at ../src/x86/ffi64.c:710
#23 0x00007f71de08dada in wl_closure_invoke (closure=closure@entry=0x55ec635f1150, target=<optimized out>, target@entry=0x55ec633ba920, opcode=opcode@entry=0, data=<optimized out>, data@entry=0x55ec62335810, flags=2) at ../wayland-1.22.0/src/connection.c:1025
#24 0x00007f71de092180 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at ../wayland-1.22.0/src/wayland-server.c:438
#25 0x00007f71de090ae2 in wl_event_loop_dispatch (loop=0x55ec60d60bb0, timeout=<optimized out>) at ../wayland-1.22.0/src/event-loop.c:1027
#26 0x00007f71e00a65e7 in KWin::Display::dispatchEvents() (this=<optimized out>) at /usr/src/debug/kwin/kwin-5.91.0/src/wayland/display.cpp:117
#27 0x00007f71dd1beaa9 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe902a2d60, r=0x55ec60d60900, this=0x55ec6122cff0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobjectdefs_impl.h:469
#28 doActivate<false>(QObject*, int, void**) (sender=0x55ec60fa4940, signal_index=3, argv=0x7ffe902a2d60) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qobject.cpp:4044
#29 0x00007f71dd1c7a2a in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (_t3=..., _t2=<optimized out>, _t1=..., this=0x55ec60fa4940) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:193
#30 QSocketNotifier::event(QEvent*) (this=0x55ec60fa4940, e=0x7ffe902a2e70) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qsocketnotifier.cpp:327
#31 0x00007f71de57bf4b in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55ec60fa4940, e=0x7ffe902a2e70) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/widgets/kernel/qapplication.cpp:3290
#32 0x00007f71dd165488 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55ec60fa4940, event=0x7ffe902a2e70) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qcoreapplication.cpp:1134
#33 0x00007f71dd2d3439 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7ffe902a2e70, receiver=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qcoreapplication.cpp:1575
#34 QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x55ec60cccce0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qeventdispatcher_unix.cpp:251
#35 0x00007f71dd2d938b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qeventdispatcher_unix.cpp:467
#36 0x00007f71dddf2ce2 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#37 0x00007f71dd16d67e in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=..., this=0x7ffe902a3040) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qeventloop.cpp:100
#38 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffe902a3040, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/kernel/qeventloop.cpp:182
#39 0x00007f71dd1690b8 in QCoreApplication::exec() () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/corelib/global/qflags.h:74
#40 0x00007f71de57849a in QApplication::exec() () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.7.0-beta1/src/widgets/kernel/qapplication.cpp:2568
#41 0x000055ec5fc6ee7e in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-5.91.0/src/main_wayland.cpp:609
Comment 2 Bug Janitor Service 2024-01-12 11:00:44 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4894
Comment 3 Vlad Zahorodnii 2024-01-12 12:53:35 UTC
Git commit c59f3859960b5a3861631c5831b47693fe20fd62 by Vlad Zahorodnii.
Committed on 12/01/2024 at 13:29.
Pushed by vladz into branch 'master'.

wayland: Fix handling of unminimization for not fully initialized xdg-toplevels

If setMinimized(false) is called for a not fully initialized
XdgToplevelWindow, we don't want to emit the windowShown signal.

M  +6    -4    src/xdgshellwindow.cpp

https://invent.kde.org/plasma/kwin/-/commit/c59f3859960b5a3861631c5831b47693fe20fd62
Comment 4 Vlad Zahorodnii 2024-01-12 14:04:29 UTC
Git commit fc4a6ab4ffaef89694cb301337a5a6a71332671f by Vlad Zahorodnii.
Committed on 12/01/2024 at 14:09.
Pushed by vladz into branch 'Plasma/6.0'.

wayland: Fix handling of unminimization for not fully initialized xdg-toplevels

If setMinimized(false) is called for a not fully initialized
XdgToplevelWindow, we don't want to emit the windowShown signal.


(cherry picked from commit c59f3859960b5a3861631c5831b47693fe20fd62)

M  +6    -4    src/xdgshellwindow.cpp

https://invent.kde.org/plasma/kwin/-/commit/fc4a6ab4ffaef89694cb301337a5a6a71332671f