Bug 430741

Summary: kwalletd5 crashes on logout frrom Wayland session
Product: [Plasma] plasmashell Reporter: Patrick Silva <bugseforuns>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED UPSTREAM    
Severity: crash CC: nate, plasma-bugs
Priority: NOR Keywords: wayland
Version: master   
Target Milestone: 1.0   
Platform: Neon   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=424408
Latest Commit: Version Fixed In:

Description Patrick Silva 2020-12-23 10:59:40 UTC
SUMMARY
Sometimes my system generates coredump of kwalletd5 after logout from Wayland session.

STEPS TO REPRODUCE
1. start Wayland session
2. logout
3. 

EXPECTED RESULT
no coredump after logout


SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.20.80
KDE Frameworks Version: 5.78.0
Qt Version: 5.15.2


Thread 2 (Thread 0x7f927ab08700 (LWP 11814)):
#0  0x00007f9280008aff in __GI___poll (fds=0x7f9274005240, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f927f00f1ae in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7f9274005240, timeout=<optimized out>, context=0x7f9274000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7f9274000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007f927f00f2e3 in g_main_context_iteration (context=0x7f9274000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007f92805f0fa2 in QEventDispatcherGlib::processEvents (this=0x7f9274000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007f92805951ab in QEventLoop::exec (this=this@entry=0x7f927ab07cf0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007f92803afa12 in QThread::exec (this=this@entry=0x7f92808d4d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007f9280850f4b in QDBusConnectionManager::run (this=0x7f92808d4d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
#8  0x00007f92803b0bac in QThreadPrivate::start (arg=0x7f92808d4d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329
#9  0x00007f9281829609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007f9280015293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f927ce77880 (LWP 11686)):
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f927ff18859 in __GI_abort () at abort.c:79
#2  0x00007f9280375be7 in qt_message_fatal (context=..., message=<synthetic pointer>...) at global/qlogging.cpp:1914
#3  QMessageLogger::fatal (this=this@entry=0x7ffd4db48030, msg=msg@entry=0x7f927ef3c0b8 "The Wayland connection broke. Did the Wayland compositor die?") at global/qlogging.cpp:893
#4  0x00007f927ee7fd65 in QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlogging.h:90
#5  QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>) at qwaylanddisplay.cpp:204
#6  0x00007f927ee9116c in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x5583f59baed0) at qwaylanddisplay.cpp:222
#7  0x00007f92805cd6f0 in doActivate<false> (sender=0x5583f59fb120, signal_index=4, argv=0x7ffd4db48140) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#8  0x00007f92805c6a87 in QMetaObject::activate (sender=sender@entry=0x5583f59fb120, m=m@entry=0x7f92808301e0 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3946
#9  0x00007f9280593247 in QAbstractEventDispatcher::awake (this=this@entry=0x5583f59fb120) at .moc/moc_qabstracteventdispatcher.cpp:149
#10 0x00007f92805f0fdc in QEventDispatcherGlib::processEvents (this=0x5583f59fb120, flags=...) at kernel/qeventdispatcher_glib.cpp:430
#11 0x00007f92805951ab in QEventLoop::exec (this=this@entry=0x7ffd4db48260, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#12 0x00007f928059d354 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#13 0x00005583f51201f6 in ?? ()
#14 0x00007f927ff1a0b3 in __libc_start_main (main=0x5583f511fa10, argc=4, argv=0x7ffd4db48588, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd4db48578) at ../csu/libc-start.c:308
#15 0x00005583f512066e in ?? ()
Comment 1 Nate Graham 2020-12-23 15:30:00 UTC
#3  QMessageLogger::fatal (this=this@entry=0x7ffd4db48030, msg=msg@entry=0x7f927ef3c0b8 "The Wayland connection broke. Did the Wayland compositor die?") at global/qlogging.cpp:893
Comment 2 Nate Graham 2021-01-13 18:44:49 UTC
#6  QMessageLogger::fatal (this=this@entry=0x7fffd70c5ba0, msg=msg@entry=0x7ff994ac00b8 "The Wayland connection broke. Did the Wayland compositor die?") at global/qlogging.cpp:893

This means that the compositor crashed. Due to a Qt issue, when this happens, the app using it will crash too. KDE developers submitted a fix, but sadly it was not merged. See https://codereview.qt-project.org/c/qt/qtwayland/+/308984.

Until we get better handling of this in Qt, the best we can do is debug why the compositor crashed in the first place. So can you please get a backtrace of the crash in kwin_wayland and then file a new bug report with it on kwin | wayland-generic? Thanks!

You may be able to use the `coredumpctl` utility to retrieve the backtrace. See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl