STEPS TO REPRODUCE 1. set task manager to close apps on middle click 2. open any app 3. close the app with middle click on task manager OBSERVED RESULT kwin_wayland crashes EXPECTED RESULT no crash SOFTWARE/OS VERSIONS Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.20.80 KDE Frameworks Version: 5.77.0 Qt Version: 5.15.1 Thread 11 (Thread 4917.5331): #0 0x00007f5d879dd5ce in epoll_wait (epfd=94, events=events@entry=0x7f5d571a88f0, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30 #1 0x00007f5d5579f0fb in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7f5d571a8aa0, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:154 #2 0x00007f5d55793114 in loop_iterate (object=0x559d7d78c6a8, timeout=-1) at ../spa/plugins/support/loop.c:289 #3 0x00007f5d89b236e0 in ?? () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0 #4 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #5 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 10 (Thread 4917.4929): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f5d87784fd8 <QTWTF::pageheap_memory+57592>) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f5d87784f88 <QTWTF::pageheap_memory+57512>, cond=0x7f5d87784fb0 <QTWTF::pageheap_memory+57552>) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=cond@entry=0x7f5d87784fb0 <QTWTF::pageheap_memory+57552>, mutex=mutex@entry=0x7f5d87784f88 <QTWTF::pageheap_memory+57512>) at pthread_cond_wait.c:638 #3 0x00007f5d8768763a in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f5d87776ee0 <QTWTF::pageheap_memory>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359 #4 0x00007f5d8768765f in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464 #5 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 9 (Thread 4917.4926): #0 0x00007f5d879d0aff in __GI___poll (fds=0x7f5d50004e60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f5d858db1ae in ?? () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f5d858db2e3 in g_main_context_iteration () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f5d8807e232 in QEventDispatcherGlib::processEvents (this=0x7f5d50000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #4 0x00007f5d8802243b in QEventLoop::exec (this=this@entry=0x7f5d5d055cc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #5 0x00007f5d87e3e982 in QThread::exec (this=this@entry=0x559d7d2ecc60) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f5d86b44d69 in QQmlThreadPrivate::run (this=0x559d7d2ecc60) at qml/ftw/qqmlthread.cpp:155 #7 0x00007f5d87e3fb1c in QThreadPrivate::start (arg=0x559d7d2ecc60) at thread/qthread_unix.cpp:329 #8 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #9 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 8 (Thread 4917.4924): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x559d7c98d728) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x559d7c98d6d8, cond=0x559d7c98d700) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=cond@entry=0x559d7c98d700, mutex=mutex@entry=0x559d7c98d6d8) at pthread_cond_wait.c:638 #3 0x00007f5d7a54197b in cnd_wait (mtx=0x559d7c98d6d8, cond=0x559d7c98d700) at ../include/c11/threads_posix.h:155 #4 util_queue_thread_func (input=input@entry=0x559d7c7aded0) at ../src/util/u_queue.c:275 #5 0x00007f5d7a54158b in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87 #6 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #7 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 7 (Thread 4917.4923): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x559d7c98d728) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x559d7c98d6d8, cond=0x559d7c98d700) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=cond@entry=0x559d7c98d700, mutex=mutex@entry=0x559d7c98d6d8) at pthread_cond_wait.c:638 #3 0x00007f5d7a54197b in cnd_wait (mtx=0x559d7c98d6d8, cond=0x559d7c98d700) at ../include/c11/threads_posix.h:155 #4 util_queue_thread_func (input=input@entry=0x559d7c6e5810) at ../src/util/u_queue.c:275 #5 0x00007f5d7a54158b in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87 #6 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #7 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 6 (Thread 4917.4922): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x559d7c98d728) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x559d7c98d6d8, cond=0x559d7c98d700) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=cond@entry=0x559d7c98d700, mutex=mutex@entry=0x559d7c98d6d8) at pthread_cond_wait.c:638 #3 0x00007f5d7a54197b in cnd_wait (mtx=0x559d7c98d6d8, cond=0x559d7c98d700) at ../include/c11/threads_posix.h:155 #4 util_queue_thread_func (input=input@entry=0x559d7c75de50) at ../src/util/u_queue.c:275 #5 0x00007f5d7a54158b in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87 #6 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #7 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 5 (Thread 4917.4921): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x559d7c98d728) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x559d7c98d6d8, cond=0x559d7c98d700) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=cond@entry=0x559d7c98d700, mutex=mutex@entry=0x559d7c98d6d8) at pthread_cond_wait.c:638 #3 0x00007f5d7a54197b in cnd_wait (mtx=0x559d7c98d6d8, cond=0x559d7c98d700) at ../include/c11/threads_posix.h:155 #4 util_queue_thread_func (input=input@entry=0x559d7c7b37d0) at ../src/util/u_queue.c:275 #5 0x00007f5d7a54158b in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87 #6 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #7 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 4 (Thread 4917.4920): #0 0x00007f5d879d0aff in __GI___poll (fds=0x7f5d70004630, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f5d858db1ae in ?? () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f5d858db2e3 in g_main_context_iteration () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f5d8807e232 in QEventDispatcherGlib::processEvents (this=0x7f5d70000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #4 0x00007f5d8802243b in QEventLoop::exec (this=this@entry=0x7f5d7bffece0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #5 0x00007f5d87e3e982 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f5d87e3fb1c in QThreadPrivate::start (arg=0x559d7c7144c0) at thread/qthread_unix.cpp:329 #7 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #8 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 3 (Thread 4917.4919): #0 0x00007f5d879d0aff in __GI___poll (fds=0x7f5d74005240, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f5d858db1ae in ?? () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f5d858db2e3 in g_main_context_iteration () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f5d8807e232 in QEventDispatcherGlib::processEvents (this=0x7f5d74000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #4 0x00007f5d8802243b in QEventLoop::exec (this=this@entry=0x7f5d80e89ce0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #5 0x00007f5d87e3e982 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f5d87e3fb1c in QThreadPrivate::start (arg=0x559d7c712800) at thread/qthread_unix.cpp:329 #7 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #8 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 2 (Thread 4917.4918): #0 0x00007f5d879d0aff in __GI___poll (fds=0x7f5d7c0176f0, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f5d858db1ae in ?? () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f5d858db2e3 in g_main_context_iteration () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f5d8807e232 in QEventDispatcherGlib::processEvents (this=0x7f5d7c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #4 0x00007f5d8802243b in QEventLoop::exec (this=this@entry=0x7f5d8171dcb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #5 0x00007f5d87e3e982 in QThread::exec (this=this@entry=0x7f5d89385d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007f5d89301f4b in QDBusConnectionManager::run (this=0x7f5d89385d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179 #7 0x00007f5d87e3fb1c in QThreadPrivate::start (arg=0x7f5d89385d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329 #8 0x00007f5d87d58609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #9 0x00007f5d879dd293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 1 (Thread 4917.4917): #0 0x0000559d00000001 in ?? () #1 0x00007f5d89b56f97 in pw_stream_destroy () from target:/lib/x86_64-linux-gnu/libpipewire-0.3.so.0 #2 0x0000559d7b2b88f1 in KWin::PipeWireStream::~PipeWireStream (this=0x559d7c848170, __in_chrg=<optimized out>) at ./screencast/pipewirestream.cpp:189 #3 0x0000559d7b2b28ea in KWin::WindowStream::~WindowStream (this=0x559d7c848170, __in_chrg=<optimized out>) at ./screencast/screencastmanager.cpp:40 #4 KWin::WindowStream::~WindowStream (this=0x559d7c848170, __in_chrg=<optimized out>) at ./screencast/screencastmanager.cpp:40 #5 0x00007f5d8805a94e in QtPrivate::QSlotObjectBase::call (a=0x7ffef71f9c30, r=0x559d7c827280, this=0x559d7c818d70) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #6 doActivate<false> (sender=0x559d7c848170, signal_index=5, argv=0x7ffef71f9c30) at kernel/qobject.cpp:3886 #7 0x00007f5d8805a94e in QtPrivate::QSlotObjectBase::call (a=0x7ffef71f9d70, r=0x559d7c848170, this=0x559d7d7a34c0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #8 doActivate<false> (sender=0x559d7c855be0, signal_index=9, argv=0x7ffef71f9d70) at kernel/qobject.cpp:3886 #9 0x00007f5d88053d17 in QMetaObject::activate (sender=sender@entry=0x559d7c855be0, m=m@entry=0x7f5d89ae6da0 <KWin::Toplevel::staticMetaObject>, local_signal_index=local_signal_index@entry=6, argv=argv@entry=0x7ffef71f9d70) at kernel/qobject.cpp:3946 #10 0x00007f5d8982b082 in KWin::Toplevel::windowClosed (this=this@entry=0x559d7c855be0, _t1=<optimized out>, _t1@entry=0x559d7c855be0, _t2=<optimized out>, _t2@entry=0x559d7c7eb250) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_toplevel.cpp:822 #11 0x00007f5d899f24d4 in KWin::XdgSurfaceClient::destroyClient (this=0x559d7c855be0) at ./xdgshellclient.cpp:338 #12 0x00007f5d8805a94e in QtPrivate::QSlotObjectBase::call (a=0x7ffef71f9eb0, r=0x559d7c855be0, this=0x559d7c7f3ba0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #13 doActivate<false> (sender=0x559d7c80ffa0, signal_index=0, argv=0x7ffef71f9eb0) at kernel/qobject.cpp:3886 #14 0x00007f5d88053d17 in QMetaObject::activate (sender=sender@entry=0x559d7c80ffa0, m=m@entry=0x7f5d882b2b20 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffef71f9eb0) at kernel/qobject.cpp:3946 #15 0x00007f5d88053dd3 in QObject::destroyed (this=this@entry=0x559d7c80ffa0, _t1=<optimized out>, _t1@entry=0x559d7c80ffa0) at .moc/moc_qobject.cpp:219 #16 0x00007f5d88058ba5 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:992 #17 0x00007f5d8948354d in KWaylandServer::XdgToplevelInterface::~XdgToplevelInterface (this=0x559d7c80ffa0, __in_chrg=<optimized out>) at ./src/server/xdgshell_interface.cpp:529 #18 0x00007f5d894b79e0 in QtWaylandServer::xdg_toplevel::destroy_func (client_resource=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:212 #19 0x00007f5d862ac5bf in destroy_resource (element=element@entry=0x559d7d732420, data=data@entry=0x0, flags=0) at ../src/wayland-server.c:724 #20 0x00007f5d862ac644 in wl_resource_destroy (resource=0x559d7d732420) at ../src/wayland-server.c:741 #21 0x00007f5d84c24ff5 in ffi_call_unix64 () at ../src/x86/unix64.S:101 #22 0x00007f5d84c2440a 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 #23 0x00007f5d862b0628 in wl_closure_invoke (closure=closure@entry=0x559d7d52c880, flags=flags@entry=2, target=<optimized out>, target@entry=0x559d7d732420, opcode=opcode@entry=0, data=<optimized out>, data@entry=0x559d7d736240) at ../src/connection.c:1018 #24 0x00007f5d862ac9e2 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x559d7d736240) at ../src/wayland-server.c:432 #25 0x00007f5d862ae65a in wl_event_loop_dispatch (loop=0x559d7c6cf550, timeout=timeout@entry=0) at ../src/event-loop.c:1027 #26 0x00007f5d8943e4a3 in KWaylandServer::Display::Private::dispatch (this=<optimized out>) at ./src/server/display.cpp:136 #27 0x00007f5d8805a94e in QtPrivate::QSlotObjectBase::call (a=0x7ffef71fa710, r=0x559d7c6f8fe0, this=0x559d7d3bb400) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #28 doActivate<false> (sender=0x559d7d3bb680, signal_index=3, argv=0x7ffef71fa710) at kernel/qobject.cpp:3886 #29 0x00007f5d88053d17 in QMetaObject::activate (sender=sender@entry=0x559d7d3bb680, m=m@entry=0x7f5d882bbb60 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffef71fa710) at kernel/qobject.cpp:3946 #30 0x00007f5d8805e9c3 in QSocketNotifier::activated (this=this@entry=0x559d7d3bb680, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178 #31 0x00007f5d8805f163 in QSocketNotifier::event (this=0x559d7d3bb680, e=0x7ffef71fa9e0) at kernel/qsocketnotifier.cpp:302 #32 0x00007f5d88c9eda3 in QApplicationPrivate::notify_helper (this=this@entry=0x559d7c6bca50, receiver=receiver@entry=0x559d7d3bb680, e=e@entry=0x7ffef71fa9e0) at kernel/qapplication.cpp:3630 #33 0x00007f5d88ca7b98 in QApplication::notify (this=0x7ffef71fadc0, receiver=0x559d7d3bb680, e=0x7ffef71fa9e0) at kernel/qapplication.cpp:3154 #34 0x00007f5d8802392a in QCoreApplication::notifyInternal2 (receiver=0x559d7d3bb680, event=0x7ffef71fa9e0) at ../../include/QtCore/5.15.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325 #35 0x00007f5d8807b45b in QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=0x559d7c6c9260) at kernel/qeventdispatcher_unix.cpp:304 #36 0x00007f5d8807b8bb in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511 #37 0x0000559d7b3038e1 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () #38 0x00007f5d8802243b in QEventLoop::exec (this=this@entry=0x7ffef71fab70, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #39 0x00007f5d8802a5e4 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #40 0x0000559d7b2957cc in main (argc=<optimized out>, argv=<optimized out>) at ./main_wayland.cpp:704 Detaching from program: target:/usr/bin/kwin_wayland, process 4917 Ending remote debugging. [Inferior 1 (process 4917) detached]
no longer reproducible on neon unstable.
It was a bug in libpipewire.