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.

Reply via email to