https://bugs.kde.org/show_bug.cgi?id=432746
Bug ID: 432746 Summary: Closing windows on Wayland often crashes in Breeze::Decoration::~Decoration() Product: Breeze Version: unspecified Platform: Other OS: Linux Status: REPORTED Severity: crash Priority: NOR Component: window decoration Assignee: plasma-b...@kde.org Reporter: n...@kde.org CC: kwin-bugs-n...@kde.org Target Milestone: --- About 25% of the time, when I close a window on Wayland, KWin crashes. The chance of a crash increases to about 50% if the window decoration context menu is open at the moment I close the app. Here's the backtrace: free(): invalid pointer Thread 1 "kwin_wayland" received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 49 return ret; Missing separate debuginfos, use: zypper install Mesa-libEGL1-debuginfo-20.3.4-272.2.x86_64 kwin5-debuginfo-5.20.5-2.2.x86_64 libavif9-debuginfo-0.8.4-1.1.x86_64 libgthread-2_0-0-debuginfo-2.66.4-1.1.x86_64 libimobiledevice-1_0-6-debuginfo-1.3.0+git.20200910-1.1.x86_64 libplist-2_0-3-debuginfo-2.2.0-1.1.x86_64 libusbmuxd-2_0-6-debuginfo-2.0.2-1.1.x86_64 pipewire-modules-debuginfo-0.3.20-1.1.x86_64 (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 #1 0x00007ffff42da864 in __GI_abort () at abort.c:79 #2 0x00007ffff4334047 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff44463b0 "%s\n") at ../sysdeps/posix/libc_fatal.c:155 #3 0x00007ffff433bcec in malloc_printerr (str=str@entry=0x7ffff444459d "free(): invalid pointer") at malloc.c:5389 #4 0x00007ffff433d0bc in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:4201 #5 0x00007ffff7413981 in QtPrivate::QSlotObjectBase::destroyIfLastRef() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395 #6 QtPrivate::QSlotObjectBase::destroyIfLastRef() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394 #7 QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1068 #8 0x00007fffe41917e9 in Breeze::Decoration::~Decoration() (this=0x12d2570, __in_chrg=<optimized out>) at /home/nate/kde/src/breeze/kdecoration/breezedecoration.cpp:164 #9 0x00007ffff6cfa33b in KWin::AbstractClient::destroyDecoration() (this=0x113b980) at /home/nate/kde/src/kwin/src/abstract_client.cpp:2339 #10 0x00007ffff6e4cd13 in KWin::XdgSurfaceClient::destroyClient() (this=0x113b980) at /home/nate/kde/src/kwin/src/xdgshellclient.cpp:331 #11 0x00007ffff74158c6 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffc710, r=0x113b980, this=0x141f750) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #12 doActivate<false>(QObject*, int, void**) (sender=0x122cb10, signal_index=0, argv=argv@entry=0x7fffffffc710) at kernel/qobject.cpp:3886 #13 0x00007ffff740ec20 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x122cb10, m=m@entry=0x7ffff76baa00 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffc710) at kernel/qobject.cpp:3946 #14 0x00007ffff740eccf in QObject::destroyed(QObject*) (this=this@entry=0x122cb10, _t1=<optimized out>, _t1@entry=0x122cb10) at .moc/moc_qobject.cpp:219 #15 0x00007ffff7413c4d in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:992 #16 0x00007ffff4ceeb86 in non-virtual thunk to KWaylandServer::XdgToplevelInterfacePrivate::xdg_toplevel_destroy_resource(QtWaylandServer::xdg_toplevel::Resource*) () at /home/nate/kde/src/kwayland-server/src/server/xdgshell_interface.cpp:366 #17 0x00007ffff4d2cfe0 in QtWaylandServer::xdg_toplevel::destroy_func(wl_resource*) (client_resource=<optimized out>) at /home/nate/kde/build/kwayland-server/src/server/qwayland-server-xdg-shell.cpp:1031 #18 0x00007ffff4c0999f in destroy_resource (element=0x11ff720, data=data@entry=0x0, flags=0) at src/wayland-server.c:724 #19 0x00007ffff4c0b331 in wl_resource_destroy (resource=<optimized out>) at src/wayland-server.c:741 #20 0x00007ffff2bea42d in ffi_call_unix64 () at ../src/x86/unix64.S:106 #21 0x00007ffff2be64f9 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:669 #22 0x00007ffff4c07005 in wl_closure_invoke (closure=closure@entry=0x10cbdf0, target=<optimized out>, target@entry=0x11ff720, opcode=opcode@entry=0, data=<optimized out>, data@entry=0x141bbc0, flags=<optimized out>) at src/connection.c:1018 #23 0x00007ffff4c0aeec in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at src/wayland-server.c:432 #24 0x00007ffff4c09ae2 in wl_event_loop_dispatch (loop=0x5237c0, timeout=timeout@entry=0) at src/event-loop.c:1027 #25 0x00007ffff4ca9d78 in KWaylandServer::Display::dispatchEvents() (this=<optimized out>) at /home/nate/kde/src/kwayland-server/src/server/display.cpp:107 #26 0x00007ffff74158c6 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffd090, r=0x5771c0, this=0x54c720) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #27 doActivate<false>(QObject*, int, void**) (sender=0x130c720, signal_index=3, argv=argv@entry=0x7fffffffd090) at kernel/qobject.cpp:3886 #28 0x00007ffff740ec20 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x130c720, m=m@entry=0x7ffff76c3a60 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffd090) at kernel/qobject.cpp:3946 #29 0x00007ffff7418cff in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x130c720, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178 #30 0x00007ffff74194fb in QSocketNotifier::event(QEvent*) (this=0x130c720, e=0x7fffffffd1a0) at kernel/qsocketnotifier.cpp:302 #31 0x00007ffff510b50f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x130c720, e=0x7fffffffd1a0) at kernel/qapplication.cpp:3632 #32 0x00007ffff73df2ea in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x130c720, event=0x7fffffffd1a0) at kernel/qcoreapplication.cpp:1063 #33 0x00007ffff7433bab in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x500f30) at kernel/qeventdispatcher_unix.cpp:304 #34 0x00007ffff743400b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511 #35 0x00007ffff08421cd in () at /usr/lib64/qt5/plugins/platforms/KWinQpaPlugin.so #36 0x00007ffff73ddcab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffd330, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #37 0x00007ffff73e5f20 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #38 0x000000000042d25a in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nate/kde/src/kwin/src/main_wayland.cpp:800 -- You are receiving this mail because: You are watching all bug changes.