https://bugs.kde.org/show_bug.cgi?id=420077
Bug ID: 420077 Summary: logout from Wayland session makes kwin to crash Product: kwin Version: git master Platform: Neon Packages OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: platform-wayland Assignee: kwin-bugs-n...@kde.org Reporter: bugsefor...@gmx.com Target Milestone: --- STEPS TO REPRODUCE 1. start Wayland session 2. do logout 3. OBSERVED RESULT kwin_wayland crashes and computer gets stuck in a black screen EXPECTED RESULT no crash SOFTWARE/OS VERSIONS Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.18.80 KDE Frameworks Version: 5.70.0 Qt Version: 5.14.1 (gdb) thread apply all bt Thread 11 (Thread 1120.1268): #0 0x00007f22d87719f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f22d6339fb8 <QTWTF::pageheap_memory+57592>) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 #1 __pthread_cond_wait_common (abstime=0x0, mutex=0x7f22d6339f68 <QTWTF::pageheap_memory+57512>, cond=0x7f22d6339f90 <QTWTF::pageheap_memory+57552>) at pthread_cond_wait.c:502 #2 __pthread_cond_wait (cond=cond@entry=0x7f22d6339f90 <QTWTF::pageheap_memory+57552>, mutex=mutex@entry=0x7f22d6339f68 <QTWTF::pageheap_memory+57512>) at pthread_cond_wait.c:655 #3 0x00007f22d6044944 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f22d632bec0 <QTWTF::pageheap_memory>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359 #4 0x00007f22d6044989 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464 #5 0x00007f22d876b6db in start_thread (arg=0x7f228affd700) at pthread_create.c:463 #6 0x00007f22d677b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 5 (Thread 1120.1233): #0 0x00007f22d87719f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x558117745528) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 #1 __pthread_cond_wait_common (abstime=0x0, mutex=0x5581177454d8, cond=0x558117745500) at pthread_cond_wait.c:502 #2 __pthread_cond_wait (cond=cond@entry=0x558117745500, mutex=mutex@entry=0x5581177454d8) at pthread_cond_wait.c:655 #3 0x00007f22af63decb in cnd_wait (mtx=0x5581177454d8, cond=0x558117745500) at ../include/c11/threads_posix.h:155 #4 util_queue_thread_func (input=input@entry=0x55811777ec60) at ../src/util/u_queue.c:258 #5 0x00007f22af63dac7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87 #6 0x00007f22d876b6db in start_thread (arg=0x7f22ae1c3700) at pthread_create.c:463 #7 0x00007f22d677b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 4 (Thread 1120.1157): #0 0x00007f22d676ebf9 in __GI___poll (fds=0x7f22b40029e0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f22cdb505c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f22cdb506dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f22d72fd0bc in QEventDispatcherGlib::processEvents (this=0x7f22b4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #4 0x00007f22d729c63a in QEventLoop::exec (this=this@entry=0x7f22be778da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225 #5 0x00007f22d70ad317 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536 #6 0x00007f22d70ae7ec in QThreadPrivate::start (arg=0x5581176744e0) at thread/qthread_unix.cpp:342 #7 0x00007f22d876b6db in start_thread (arg=0x7f22be779700) at pthread_create.c:463 #8 0x00007f22d677b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 3 (Thread 1120.1156): #0 0x00007f22d676ebf9 in __GI___poll (fds=0x7f22b0002de0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f22cdb505c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f22cdb506dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f22d72fd0bc in QEventDispatcherGlib::processEvents (this=0x7f22b0000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #4 0x00007f22d729c63a in QEventLoop::exec (this=this@entry=0x7f22bef79da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225 #5 0x00007f22d70ad317 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:536 #6 0x00007f22d70ae7ec in QThreadPrivate::start (arg=0x558117674e40) at thread/qthread_unix.cpp:342 ---Type <return> to continue, or q <return> to quit--- #7 0x00007f22d876b6db in start_thread (arg=0x7f22bef7a700) at pthread_create.c:463 #8 0x00007f22d677b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 2 (Thread 1120.1140): #0 0x00007f22d676ebf9 in __GI___poll (fds=0x7f22b8017a70, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f22cdb505c9 in ?? () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f22cdb506dc in g_main_context_iteration () from target:/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f22d72fd0bc in QEventDispatcherGlib::processEvents (this=0x7f22b8000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #4 0x00007f22d729c63a in QEventLoop::exec (this=this@entry=0x7f22bfde1d70, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225 #5 0x00007f22d70ad317 in QThread::exec (this=this@entry=0x7f22d8762da0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:536 #6 0x00007f22d84ea555 in QDBusConnectionManager::run (this=0x7f22d8762da0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179 #7 0x00007f22d70ae7ec in QThreadPrivate::start (arg=0x7f22d8762da0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:342 #8 0x00007f22d876b6db in start_thread (arg=0x7f22bfde2700) at pthread_create.c:463 #9 0x00007f22d677b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 1 (Thread 1120.1120): #0 __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:249 #1 0x00007f22d0a24aa1 in memcpy (__len=262144, __src=0x0, __dest=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/string_fortified.h:34 #2 QImage::copy (this=this@entry=0x558117775e20, r=...) at image/qimage.cpp:1172 #3 0x00007f22d0a24cdf in QImage::detach (this=this@entry=0x558117775e20) at image/qimage.cpp:1091 #4 0x00007f22d0a25ae0 in QImage::fill (this=0x558117775e20, color=...) at image/qimage.cpp:1806 #5 0x00007f22d0a25f5f in QImage::fill (this=this@entry=0x558117775e20, color=color@entry=Qt::transparent) at image/qimage.cpp:1780 #6 0x00007f22bf3bdffd in KWin::DrmOutput::updateCursor (this=0x5581176fb780) at ./plugins/platforms/drm/drm_output.cpp:175 #7 0x00007f22bf3b0e55 in KWin::DrmBackend::updateCursor (this=0x558117669b60) at ./plugins/platforms/drm/drm_backend.cpp:701 #8 0x00007f22d72d8fe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffe0444acf0, r=0x558117669b60, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394 #9 doActivate<false> (sender=0x55811766f960, signal_index=3, argv=0x7ffe0444acf0) at kernel/qobject.cpp:3870 #10 0x00007f22d72d38a2 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f22da18be40 <KWin::Cursors::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe0444acf0) at kernel/qobject.cpp:3930 #11 0x00007f22d9eb960f in KWin::Cursors::currentCursorChanged (this=<optimized out>, _t1=<optimized out>) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:385 #12 0x00007f22d72d8fe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffe0444adb0, r=0x55811766f960, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394 #13 doActivate<false> (sender=0x5581176cf560, signal_index=5, argv=0x7ffe0444adb0) at kernel/qobject.cpp:3870 #14 0x00007f22d72d38a2 in QMetaObject::activate (sender=sender@entry=0x5581176cf560, m=m@entry=0x7f22da18be80 <KWin::Cursor::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x0) at kernel/qobject.cpp:3930 #15 0x00007f22d9eb5f43 in KWin::Cursor::cursorChanged (this=this@entry=0x5581176cf560) at ./obj-x86_64-linux-gnu/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:217 #16 0x00007f22d9d2172b in KWin::Cursor::updateCursor (this=this@entry=0x5581176cf560, image=..., hotspot=...) at ./cursor.cpp:187 #17 0x00007f22d9dc78eb in KWin::PointerInputRedirection::<lambda()>::operator() (__closure=<optimized out>) at ./pointer_input.cpp:135 #18 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146 #19 QtPrivate::Functor<KWin::PointerInputRedirection::init()::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256 ---Type <return> to continue, or q <return> to quit--- #20 QtPrivate::QFunctorSlotObject<KWin::PointerInputRedirection::init()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:439 #21 0x00007f22d72d8fe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffe0444aef0, r=0x5581176cf560, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394 #22 doActivate<false> (sender=0x558117c93940, signal_index=3, argv=0x7ffe0444aef0) at kernel/qobject.cpp:3870 #23 0x00007f22d9dc3f15 in KWin::CursorImage::update (this=0x558117c93940) at ./pointer_input.cpp:1041 #24 0x00007f22d72d8fe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffe0444b090, r=0x558117c93940, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394 #25 doActivate<false> (sender=0x5581176619d0, signal_index=14, argv=0x7ffe0444b090) at kernel/qobject.cpp:3870 #26 0x00007f22d8a50ae2 in KWayland::Server::SeatInterface::focusedPointerChanged(KWayland::Server::PointerInterface*) () from target:/usr/lib/x86_64-linux-gnu/libKF5WaylandServer.so.5 #27 0x00007f22d72d8fe7 in QtPrivate::QSlotObjectBase::call (a=0x7ffe0444b1b0, r=0x5581176619d0, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394 #28 doActivate<false> (sender=0x5581180eaeb0, signal_index=0, argv=0x7ffe0444b1b0) at kernel/qobject.cpp:3870 #29 0x00007f22d72d38a2 in QMetaObject::activate (sender=sender@entry=0x5581180eaeb0, m=m@entry=0x7f22d7762c60 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe0444b1b0) at kernel/qobject.cpp:3930 #30 0x00007f22d72d394f in QObject::destroyed (this=this@entry=0x5581180eaeb0, _t1=<optimized out>, _t1@entry=0x5581180eaeb0) at .moc/moc_qobject.cpp:219 #31 0x00007f22d72d6df4 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1017 #32 0x00007f22d8a11d49 in KWayland::Server::PointerInterface::~PointerInterface() () from target:/usr/lib/x86_64-linux-gnu/libKF5WaylandServer.so.5 #33 0x00007f22d72d0eb5 in QObject::event (this=0x5581180eaeb0, e=0x5581180b9f30) at kernel/qobject.cpp:1326 #34 0x00007f22d78d18bc in QApplicationPrivate::notify_helper (this=this@entry=0x55811761def0, receiver=receiver@entry=0x5581180eaeb0, e=e@entry=0x5581180b9f30) at kernel/qapplication.cpp:3684 #35 0x00007f22d78d8ac0 in QApplication::notify (this=0x7ffe0444b990, receiver=0x5581180eaeb0, e=0x5581180b9f30) at kernel/qapplication.cpp:3430 #36 0x00007f22d729ddb8 in QCoreApplication::notifyInternal2 (receiver=0x5581180eaeb0, event=0x5581180b9f30) at kernel/qcoreapplication.cpp:1092 #37 0x00007f22d729df8e in QCoreApplication::sendEvent (receiver=receiver@entry=0x5581180eaeb0, event=event@entry=0x5581180b9f30) at kernel/qcoreapplication.cpp:1487 #38 0x00007f22d72a0a31 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5581175f5680) at kernel/qcoreapplication.cpp:1832 #39 0x00007f22d72fa3e4 in QEventDispatcherUNIX::processEvents (this=0x55811762b9b0, flags=...) at kernel/qeventdispatcher_unix.cpp:466 #40 0x00007f22c3016c2d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from target:/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/KWinQpaPlugin.so #41 0x0000558117342892 in KWin::Xwl::Xwayland::~Xwayland (this=0x558117a86550, __in_chrg=<optimized out>) at ./xwl/xwayland.cpp:103 #42 0x0000558117342979 in KWin::Xwl::Xwayland::~Xwayland (this=0x558117a86550, __in_chrg=<optimized out>) at ./xwl/xwayland.cpp:108 #43 0x000055811732fa47 in KWin::ApplicationWayland::~ApplicationWayland (this=0x7ffe0444b990, __in_chrg=<optimized out>) at ./main_wayland.cpp:142 #44 0x000055811732d808 in main (argc=<optimized out>, argv=<optimized out>) at ./main_wayland.cpp:406 -- You are receiving this mail because: You are watching all bug changes.