Bug 452433 - kwin_wayland crashes
Summary: kwin_wayland crashes
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: git master
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 452505 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-04-09 13:37 UTC by Nicolas Fella
Modified: 2022-05-25 20:15 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.24.6


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Fella 2022-04-09 13:37:00 UTC
#0  KWin::Workspace::clientArea(KWin::clientAreaOption, KWin::AbstractOutput const*, KWin::VirtualDesktop const*) const (this=0x5584a17c4b00, 
    this@entry=0x7ffd93adcad0, opt=KWin::PlacementArea, output=<optimized out>, desktop=<optimized out>) at /home/nico/kde/src/kwin/src/workspace.cpp:2300
#1  0x00007f55265e3ae4 in KWin::Workspace::clientArea(KWin::clientAreaOption, KWin::Toplevel const*, KWin::AbstractOutput const*) const (this=this@entry=0x7ffd93adcad0, opt=<optimized out>, window=window@entry=
    0x7ffd93adcac0, output=<optimized out>) at /home/nico/kde/src/kwin/src/workspace.cpp:2352
#2  0x00007f55265e3c1c in KWin::Workspace::clientArea(KWin::clientAreaOption, KWin::Toplevel const*) const (this=this@entry=0x7ffd93adcad0, opt=<optimized out>, window=window@entry=0x7ffd93adcac0)
    at /home/nico/kde/src/kwin/src/workspace.cpp:2340
#3  0x00007f552653a1c7 in KWin::Placement::placeTransient(KWin::AbstractClient*) (this=<optimized out>, c=0x5584a2c10d20) at /home/nico/kde/src/kwin/src/placement.cpp:525
#4  0x00007f552661216d in KWin::XdgPopupClient::initialize() (this=0x5584a2c10d20) at /home/nico/kde/src/kwin/src/placement.h:95
#5  0x00007f55246cc203 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd93adcbd0, r=0x5584a2c10d20, this=0x5584a2f4de50) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#6  doActivate<false>(QObject*, int, void**) (sender=0x5584a2de53c0, signal_index=4, argv=0x7ffd93adcbd0) at kernel/qobject.cpp:3886
#7  0x00007f5525347a45 in KWaylandServer::XdgPopupInterface::initializeRequested() (this=0x5584a2de53c0) at /home/nico/kde/build/kwayland-server/src/server/KWaylandServer_autogen/EWIEGA46WW/moc_xdgshell_interface.cpp:973
#8  0x00007f55253e97d5 in KWaylandServer::XdgPopupInterfacePrivate::commit() (this=0x5584a3412e20) at /home/nico/kde/src/kwayland-server/src/server/xdgshell_interface.cpp:648
#9  0x00007f55253c2605 in KWaylandServer::SurfaceInterfacePrivate::applyState(KWaylandServer::SurfaceState*) (this=0x5584a398dca0, next=0x5584a398dde8) at /home/nico/kde/src/kwayland-server/src/server/surface_interface.cpp:660
#10 0x00007f55253c075c in KWaylandServer::SurfaceInterfacePrivate::surface_commit(QtWaylandServer::wl_surface::Resource*) (this=0x5584a398dca0, resource=0x5584a2350a00)
    at /home/nico/kde/src/kwayland-server/src/server/surface_interface.cpp:302
#11 0x00007f55253f89f6 in QtWaylandServer::wl_surface::handle_commit(wl_client*, wl_resource*) (client=0x5584a2f2eaa0, resource=0x5584a38e9cb0) at /home/nico/kde/build/kwayland-server/src/server/qwayland-server-wayland.cpp:3605
#12 0x00007f5521df7d4a in  () at /usr/lib/libffi.so.8
#13 0x00007f5521df7267 in  () at /usr/lib/libffi.so.8
#14 0x00007f55252a6af2 in  () at /usr/lib/libwayland-server.so.0
#15 0x00007f55252aae14 in  () at /usr/lib/libwayland-server.so.0
#16 0x00007f55252a984a in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0
#17 0x00007f552535ae06 in KWaylandServer::Display::dispatchEvents() (this=0x5584a14d79c0) at /home/nico/kde/src/kwayland-server/src/server/display.cpp:114
#18 0x00007f552535f8b5 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWaylandServer::Display::*)()>::call(void (KWaylandServer::Display::*)(), KWaylandServer::Display*, void**)
    (f=(void (KWaylandServer::Display::*)(KWaylandServer::Display * const)) 0x7f552535adca <KWaylandServer::Display::dispatchEvents()>, o=0x5584a14d79c0, arg=0x7ffd93add710) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:152
#19 0x00007f552535f63d in QtPrivate::FunctionPointer<void (KWaylandServer::Display::*)()>::call<QtPrivate::List<>, void>(void (KWaylandServer::Display::*)(), KWaylandServer::Display*, void**)
    (f=(void (KWaylandServer::Display::*)(KWaylandServer::Display * const)) 0x7f552535adca <KWaylandServer::Display::dispatchEvents()>, o=0x5584a14d79c0, arg=0x7ffd93add710) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:185
#20 0x00007f552535e973 in QtPrivate::QSlotObject<void (KWaylandServer::Display::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x5584a17a5530, r=0x5584a14d79c0, a=0x7ffd93add710, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:418
#21 0x00007f55246cc203 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd93add710, r=0x5584a14d79c0, this=0x5584a17a5530) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#22 doActivate<false>(QObject*, int, void**) (sender=0x5584a18ca660, signal_index=3, argv=0x7ffd93add710) at kernel/qobject.cpp:3886
#23 0x00007f55246c56cf in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=sender@entry=0x5584a18ca660, m=m@entry=0x7f552496c120 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd93add710) at kernel/qobject.cpp:3946
#24 0x00007f55246cf6ef in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x5584a18ca660, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178
#25 0x00007f55246cfeeb in QSocketNotifier::event(QEvent*) (this=0x5584a18ca660, e=0x7ffd93add830) at kernel/qsocketnotifier.cpp:302
#26 0x00007f55233c069f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x5584a18ca660, e=0x7ffd93add830) at kernel/qapplication.cpp:3637
#27 0x00007f5524695a0a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5584a18ca660, event=0x7ffd93add830) at kernel/qcoreapplication.cpp:1064
#28 0x00007f55246ea47b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x5584a1481500) at kernel/qeventdispatcher_unix.cpp:304
#29 0x00007f55246ea8db in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511
#30 0x00005584a0ca4f3d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:63
#31 0x00007f552469440b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd93add9c0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#32 0x00007f552469c6e0 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#33 0x00007f5524aa8fbc in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867
#34 0x00007f55233c0615 in QApplication::exec() () at kernel/qapplication.cpp:2829
#35 0x00005584a0ba0dcb in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde/src/kwin/src/main_wayland.cpp:659


kwin + other KDE stuff from master

I wasn't doing anything particular that causes this.

Backtrace looks similar, but not identical to https://bugs.kde.org/show_bug.cgi?id=448102 and https://bugs.kde.org/show_bug.cgi?id=449957, however I did not change anything wrt monitors
Comment 1 Nicolas Fella 2022-04-09 13:42:27 UTC
It happend a second time, both times I was doing stuff in Kate.

Note that this happend with https://invent.kde.org/plasma/kwin/-/merge_requests/2162 applied, so there's a change that it is related
Comment 2 Nicolas Fella 2022-04-09 13:57:31 UTC
Okay, I can reproduce it with plain master.

It happens when I open a file in Kate that had unsaved changes before closing. When I click to restore the changes then kwin crashes
Comment 3 David Edmundson 2022-04-11 10:06:41 UTC
Can you confirm if !2208 fixes it?
Comment 4 Nicolas Fella 2022-04-11 12:26:42 UTC
Current master (with !2208 merged) still crashes
Comment 5 Nicolas Fella 2022-04-11 15:47:12 UTC
*** Bug 452505 has been marked as a duplicate of this bug. ***
Comment 6 Zamundaaa 2022-04-14 18:38:29 UTC
Git commit e48a5c0535f01dc380449ba8481c869ff23e5558 by Xaver Hugl.
Committed on 14/04/2022 at 17:56.
Pushed by zamundaaa into branch 'master'.

toplevel: set valid output in the constructor

This makes it less easy to cause crashes and fixes some segfaults.

M  +2    -1    src/toplevel.cpp

https://invent.kde.org/plasma/kwin/commit/e48a5c0535f01dc380449ba8481c869ff23e5558
Comment 7 Vlad Zahorodnii 2022-05-23 07:41:32 UTC
Git commit a8477c1cf7acbf3358c85e53b236150dd43b4640 by Vlad Zahorodnii, on behalf of Xaver Hugl.
Committed on 21/05/2022 at 11:08.
Pushed by merge-service into branch 'Plasma/5.24'.

toplevel: set valid output in the constructor

This makes it less easy to cause crashes and fixes some segfaults.
Related: bug 448064

(cherry picked from commit e48a5c0535f01dc380449ba8481c869ff23e5558)

Tested-by: Merge Service <https://invent.kde.org/plasma/kwin/-/merge_requests/2448>
Part-of: <https://invent.kde.org/plasma/kwin/-/merge_requests/2448>

M  +2    -1    src/toplevel.cpp

https://invent.kde.org/plasma/kwin/commit/a8477c1cf7acbf3358c85e53b236150dd43b4640