Bug 409517 - [Wayland] KMail freezes
Summary: [Wayland] KMail freezes
Status: CONFIRMED
Alias: None
Product: kmail2
Classification: Applications
Component: UI (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR major
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords: wayland
: 409796 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-07-05 07:32 UTC by Simone
Modified: 2020-06-15 14:20 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simone 2019-07-05 07:32:57 UTC
SUMMARY
KMail randomly freezes in the Wayland session. This can happen at any moment, either a few seconds after I open it or after some minutes.

STEPS TO REPRODUCE
1. Open KMail in the Wayland session
2. Open and scroll emails for a while

OBSERVED RESULT
KMail freezes. It is necessary to close it.

EXPECTED RESULT
KMail should keep working normally.

SOFTWARE/OS VERSIONS
KMail version: 19.04.2
Linux/KDE Plasma: 5.1.15-arch1
KDE Plasma Version: 5.16.2
KDE Frameworks Version: 5.59.0
Qt Version: 5.13.0
Comment 1 Alois Wohlschlager 2019-07-05 12:28:02 UTC
I have caught KMail deadlocking here:

#0  0x00007fd0e501de3d in syscall () from /usr/lib/libc.so.6
#1  0x00007fd0e53947b6 in QBasicMutex::lockInternal() () from /usr/lib/libQt5Core.so.5
#2  0x00007fd0cdb8ab3a in QtWaylandClient::QWaylandWindow::waitForFrameSync(int) ()
   from /usr/lib/libQt5WaylandClient.so.5
#3  0x00007fd0e6922bcc in ?? () from /usr/lib/qt/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so
#4  0x00007fd0e593b0a2 in QOpenGLContext::swapBuffers(QSurface*) () from /usr/lib/libQt5Gui.so.5
#5  0x00007fd0e5c0b27b in QPlatformBackingStore::composeAndFlush(QWindow*, QRegion const&, QPoint const&, QPlatformTextureList*, bool) () from /usr/lib/libQt5Gui.so.5
#6  0x00007fd0e5f2673e in ?? () from /usr/lib/libQt5Widgets.so.5
#7  0x00007fd0e5f284a5 in ?? () from /usr/lib/libQt5Widgets.so.5
#8  0x00007fd0e5f29e62 in ?? () from /usr/lib/libQt5Widgets.so.5
#9  0x00007fd0e5f2a269 in ?? () from /usr/lib/libQt5Widgets.so.5
#10 0x00007fd0e5f42407 in QWidgetPrivate::syncBackingStore() () from /usr/lib/libQt5Widgets.so.5
#11 0x00007fd0e5f5b080 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#12 0x00007fd0e60735e5 in QMainWindow::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#13 0x00007fd0e4e21c2c in KMainWindow::event(QEvent*) () from /usr/lib/libKF5XmlGui.so.5
#14 0x00007fd0e4e6ded6 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libKF5XmlGui.so.5
#15 0x00007fd0e5f174d5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#16 0x00007fd0e5f20a21 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#17 0x00007fd0e55619c2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#18 0x00007fd0e5f2ad2d in ?? () from /usr/lib/libQt5Widgets.so.5
#19 0x00007fd0e5f2d0db in ?? () from /usr/lib/libQt5Widgets.so.5
#20 0x00007fd0e5f442bf in QWidget::repaint(QRect const&) () from /usr/lib/libQt5Widgets.so.5
#21 0x00007fd0e5f4431d in QWidget::repaint() () from /usr/lib/libQt5Widgets.so.5
#22 0x00007fd0e5f7a343 in ?? () from /usr/lib/libQt5Widgets.so.5
#23 0x00007fd0e5f174d5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#24 0x00007fd0e5f20a21 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#25 0x00007fd0e55619c2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#26 0x00007fd0e58ee1bd in QPlatformWindow::deliverUpdateRequest() () from /usr/lib/libQt5Gui.so.5
#27 0x00007fd0cdb8aacf in QtWaylandClient::QWaylandWindow::handleFrameCallback() ()
   from /usr/lib/libQt5WaylandClient.so.5
#28 0x00007fd0ce0146d0 in ffi_call_unix64 () from /usr/lib/libffi.so.6
#29 0x00007fd0ce0140a0 in ffi_call () from /usr/lib/libffi.so.6
#30 0x00007fd0e693cf8f in ?? () from /usr/lib/libwayland-client.so.0
#31 0x00007fd0e69396ba in ?? () from /usr/lib/libwayland-client.so.0
#32 0x00007fd0e693abfc in wl_display_dispatch_queue_pending () from /usr/lib/libwayland-client.so.0
#33 0x00007fd0cdb840a7 in QtWaylandClient::QWaylandDisplay::dispatchQueueWhile(wl_event_queue*, std::function<bool ()>, int) () from /usr/lib/libQt5WaylandClient.so.5
#34 0x00007fd0cdb8abbd in QtWaylandClient::QWaylandWindow::waitForFrameSync(int) ()
   from /usr/lib/libQt5WaylandClient.so.5
#35 0x00007fd0e6922bcc in ?? () from /usr/lib/qt/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so
--Type <RET> for more, q to quit, c to continue without paging--
#36 0x00007fd0e593b0a2 in QOpenGLContext::swapBuffers(QSurface*) () from /usr/lib/libQt5Gui.so.5
#37 0x00007fd0e5c0b27b in QPlatformBackingStore::composeAndFlush(QWindow*, QRegion const&, QPoint const&, QPlatformTextureList*, bool) () from /usr/lib/libQt5Gui.so.5
#38 0x00007fd0e5f2673e in ?? () from /usr/lib/libQt5Widgets.so.5
#39 0x00007fd0e5f284a5 in ?? () from /usr/lib/libQt5Widgets.so.5
#40 0x00007fd0e5f29e62 in ?? () from /usr/lib/libQt5Widgets.so.5
#41 0x00007fd0e5f2a269 in ?? () from /usr/lib/libQt5Widgets.so.5
#42 0x00007fd0e5f42407 in QWidgetPrivate::syncBackingStore() () from /usr/lib/libQt5Widgets.so.5
#43 0x00007fd0e5f5b080 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#44 0x00007fd0e60735e5 in QMainWindow::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#45 0x00007fd0e4e21c2c in KMainWindow::event(QEvent*) () from /usr/lib/libKF5XmlGui.so.5
#46 0x00007fd0e4e6ded6 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libKF5XmlGui.so.5
#47 0x00007fd0e5f174d5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#48 0x00007fd0e5f20a21 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#49 0x00007fd0e55619c2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#50 0x00007fd0e5564739 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /usr/lib/libQt5Core.so.5
#51 0x00007fd0e55ba3a4 in ?? () from /usr/lib/libQt5Core.so.5
#52 0x00007fd0e1cf890f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#53 0x00007fd0e1cfa869 in ?? () from /usr/lib/libglib-2.0.so.0
#54 0x00007fd0e1cfa8ae in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#55 0x00007fd0e55b99a3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQt5Core.so.5
#56 0x00007fd0e55605ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#57 0x00007fd0e5568326 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#58 0x000055a1d0175077 in ?? ()
#59 0x00007fd0e4f4dee3 in __libc_start_main () from /usr/lib/libc.so.6
#60 0x000055a1d017523e in ?? ()

Actually, it doesn't seem like KMail's fault, but I cannot find other apps having the same issue.
Comment 2 Patrick Silva 2019-07-14 22:55:06 UTC
*** Bug 409796 has been marked as a duplicate of this bug. ***
Comment 3 juha.heljoranta 2019-07-23 11:01:32 UTC
Same thing here.

kmail-19.04.2-2.fc30.x86_64
KDE Frameworks Version: 5.59.0
Qt Version: 5.14.4

gdb:

Thread 1 (Thread 0x7f736b23c040 (LWP 4565)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f737e1cea25 in QtLinuxFutex::_q_futex (val3=0, addr2=0x0, val2=0, val=3, op=0, addr=0x7f735e25c2b0 <QtWaylandClient::QWaylandWindow::mFrameSyncMutex>) at thread/qfutex_p.h:105
#2  QtLinuxFutex::futexWait<QBasicAtomicPointer<QMutexData> > (expectedValue=0x3, futex=...) at thread/qfutex_p.h:107
#3  lockInternal_helper<false> (timeout=-1, elapsedTimer=0x0, d_ptr=...) at thread/qmutex_linux.cpp:142
#4  QBasicMutex::lockInternal (this=this@entry=0x7f735e25c2b0 <QtWaylandClient::QWaylandWindow::mFrameSyncMutex>) at thread/qmutex_linux.cpp:159
#5  0x00007f737e1cea88 in QMutex::lock (this=this@entry=0x7f735e25c2b0 <QtWaylandClient::QWaylandWindow::mFrameSyncMutex>) at thread/qmutex.cpp:227
#6  0x00007f735e1bfced in QMutexLocker::QMutexLocker (m=0x7f735e25c2b0 <QtWaylandClient::QWaylandWindow::mFrameSyncMutex>, this=<synthetic pointer>) at /usr/include/qt5/QtCore/qmutex.h:206
#7  QtWaylandClient::QWaylandWindow::waitForFrameSync (this=0x55bd7911f010, timeout=100) at qwaylandwindow.cpp:664
#8  0x00007f735de1c022 in QtWaylandClient::QWaylandGLContext::swapBuffers (this=0x55bd7c4debd0, surface=<optimized out>) at ../../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:566
#9  0x00007f737e780881 in QOpenGLContext::swapBuffers (this=0x55bd7c4da960, surface=surface@entry=0x55bd783b9970) at kernel/qopenglcontext.cpp:1115
#10 0x00007f737e9d65cf in QPlatformBackingStore::composeAndFlush (this=this@entry=0x55bd795004b0, window=0x55bd783b9960, region=..., offset=..., textures=textures@entry=0x7f737f2061e0 <(anonymous namespace)::Q_QGS_qt_dummy_platformTextureList::innerFunction()::holder>, translucentBackground=translucentBackground@entry=false) at painting/qplatformbackingstore.cpp:463
#11 0x00007f737ece5c06 in QWidgetBackingStore::qt_flush (widgetBackingStore=<optimized out>, widgetTextures=0x7f737f2061e0 <(anonymous namespace)::Q_QGS_qt_dummy_platformTextureList::innerFunction()::holder>, tlw=<optimized out>, backingStore=<optimized out>, region=..., widget=0x55bd7954e720) at kernel/qwidgetbackingstore.cpp:154
#12 QWidgetBackingStore::qt_flush (widget=0x55bd7954e720, region=..., backingStore=<optimized out>, tlw=<optimized out>, widgetTextures=<optimized out>, widgetBackingStore=<optimized out>) at kernel/qwidgetbackingstore.cpp:83
#13 0x00007f737ece7618 in QWidgetBackingStore::flush (this=this@entry=0x55bd783ba230, widget=widget@entry=0x0) at kernel/qwidgetbackingstore.cpp:1442
#14 0x00007f737ece8c40 in QWidgetBackingStore::endPaint (beginPaintInfo=<synthetic pointer>, backingStore=<optimized out>, cleaned=..., this=0x55bd783ba230) at kernel/qwidgetbackingstore.cpp:363
#15 QWidgetBackingStore::doSync (this=<optimized out>) at kernel/qwidgetbackingstore.cpp:1426
#16 0x00007f737ece8fc1 in QWidgetBackingStore::sync (this=0x55bd783ba230) at kernel/qwidgetbackingstore.cpp:1204
#17 0x00007f737ed01065 in QWidgetPrivate::syncBackingStore (this=0x55bd78df3130) at kernel/qwidget.cpp:1961
#18 0x00007f737ed19bc8 in QWidget::event (this=this@entry=0x55bd7954e720, event=event@entry=0x7ffe0a2de4b0) at kernel/qwidget.cpp:9264
#19 0x00007f737ee2d908 in QMainWindow::event (this=this@entry=0x55bd7954e720, event=event@entry=0x7ffe0a2de4b0) at widgets/qmainwindow.cpp:1339
#20 0x00007f737dc45e0b in KMainWindow::event (this=this@entry=0x55bd7954e720, ev=ev@entry=0x7ffe0a2de4b0) at /usr/src/debug/kf5-kxmlgui-5.59.0-2.fc30.x86_64/src/kmainwindow.cpp:877
#21 0x00007f737dc928fb in KXmlGuiWindow::event (this=0x55bd7954e720, ev=0x7ffe0a2de4b0) at /usr/src/debug/kf5-kxmlgui-5.59.0-2.fc30.x86_64/src/kxmlguiwindow.cpp:125
#22 0x00007f737ecd6af6 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55bd7954e720, e=0x7ffe0a2de4b0) at kernel/qapplication.cpp:3737
#23 0x00007f737ecdfe80 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3483
#24 0x00007f737e375ae8 in QCoreApplication::notifyInternal2 (receiver=0x55bd7954e720, event=0x7ffe0a2de4b0) at kernel/qcoreapplication.cpp:1084
#25 0x00007f737ece9be3 in QWidgetBackingStore::sendUpdateRequest (this=this@entry=0x55bd783ba230, widget=0x55bd7954e720, updateTime=updateTime@entry=QWidgetBackingStore::UpdateNow) at kernel/qwidgetbackingstore.cpp:504
#26 0x00007f737ecea91e in QWidgetBackingStore::sendUpdateRequest (updateTime=QWidgetBackingStore::UpdateNow, widget=<optimized out>, this=0x55bd783ba230) at kernel/qwidgetbackingstore.cpp:474
#27 QWidgetBackingStore::markDirty (this=0x55bd783ba230, rect=..., widget=widget@entry=0x55bd7954e720, updateTime=updateTime@entry=QWidgetBackingStore::UpdateNow, bufferState=bufferState@entry=QWidgetBackingStore::BufferValid) at kernel/qwidgetbackingstore.cpp:678
#28 0x00007f737ed02f31 in QWidgetPrivate::repaint<QRect> (r=..., this=<optimized out>) at ../../include/QtWidgets/5.12.4/QtWidgets/private/../../../../../src/widgets/kernel/qwidget_p.h:139
#29 QWidget::repaint (this=<optimized out>, rect=...) at kernel/qwidget.cpp:11072
#30 0x00007f737ed02fa0 in QWidget::repaint (this=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qrect.h:184
#31 0x00007f737ed37f34 in QWidgetWindow::event (event=0x7ffe0a2de920, this=0x55bd783b9960) at /usr/include/c++/9/bits/atomic_base.h:413
#32 QWidgetWindow::event (this=0x55bd783b9960, event=0x7ffe0a2de920) at kernel/qwidgetwindow.cpp:224
#33 0x00007f737ecd6af6 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55bd783b9960, e=0x7ffe0a2de920) at kernel/qapplication.cpp:3737
#34 0x00007f737ecdfe80 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3483
#35 0x00007f737e375ae8 in QCoreApplication::notifyInternal2 (receiver=0x55bd783b9960, event=0x7ffe0a2de920) at kernel/qcoreapplication.cpp:1084
#36 0x00007f737e73906d in QPlatformWindow::deliverUpdateRequest (this=<optimized out>) at kernel/qplatformwindow.cpp:793
#37 0x00007f735e1bfc7e in QtWaylandClient::QWaylandWindow::<lambda()>::operator() (__closure=<optimized out>, __closure=<optimized out>) at qwaylandwindow.cpp:650
#38 QtWaylandClient::QWaylandWindow::<lambda()>::operator() (__closure=<synthetic pointer>, __closure=<synthetic pointer>) at qwaylandwindow.cpp:641
#39 QtWaylandClient::QWaylandWindow::handleFrameCallback (this=0x55bd7911f010) at qwaylandwindow.cpp:656
#40 0x00007f736b8f3b28 in ffi_call_unix64 () at ../src/x86/unix64.S:76
#41 0x00007f736b8f3339 in ffi_call (cif=cif@entry=0x7ffe0a2dead0, fn=<optimized out>, rvalue=<optimized out>, rvalue@entry=0x0, avalue=avalue@entry=0x7ffe0a2deba0) at ../src/x86/ffi64.c:525
#42 0x00007f737f708607 in wl_closure_invoke (closure=closure@entry=0x55bd7dae1fb0, flags=flags@entry=1, target=<optimized out>, target@entry=0x55bd7da9f0e0, opcode=opcode@entry=0, data=<optimized out>) at src/connection.c:1014
#43 0x00007f737f704f18 in dispatch_event (display=display@entry=0x55bd77f38850, queue=<optimized out>) at src/wayland-client.c:1430
#44 0x00007f737f70646c in dispatch_queue (queue=0x55bd783b9710, display=0x55bd77f38850) at src/wayland-client.c:1576
#45 wl_display_dispatch_queue_pending (display=0x55bd77f38850, queue=queue@entry=0x55bd783b9710) at src/wayland-client.c:1818
#46 0x00007f735e1bb5b8 in QtWaylandClient::QWaylandDisplay::dispatchQueueWhile(wl_event_queue*, std::function<bool ()>, int) (this=0x55bd77ef6000, queue=0x55bd783b9710, condition=..., timeout=timeout@entry=100) at qwaylanddisplay.cpp:234
#47 0x00007f735e1bfd73 in QtWaylandClient::QWaylandWindow::waitForFrameSync (this=0x55bd7911f010, timeout=100) at /usr/include/c++/9/new:174
#48 0x00007f735de1c022 in QtWaylandClient::QWaylandGLContext::swapBuffers (this=0x55bd7c4debd0, surface=<optimized out>) at ../../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:566
#49 0x00007f737e780881 in QOpenGLContext::swapBuffers (this=0x55bd7c4da960, surface=surface@entry=0x55bd783b9970) at kernel/qopenglcontext.cpp:1115
#50 0x00007f737e9d65cf in QPlatformBackingStore::composeAndFlush (this=this@entry=0x55bd795004b0, window=0x55bd783b9960, region=..., offset=..., textures=textures@entry=0x7f737f2061e0 <(anonymous namespace)::Q_QGS_qt_dummy_platformTextureList::innerFunction()::holder>, translucentBackground=translucentBackground@entry=false) at painting/qplatformbackingstore.cpp:463
#51 0x00007f737ece5c06 in QWidgetBackingStore::qt_flush (widgetBackingStore=<optimized out>, widgetTextures=0x7f737f2061e0 <(anonymous namespace)::Q_QGS_qt_dummy_platformTextureList::innerFunction()::holder>, tlw=<optimized out>, backingStore=<optimized out>, region=..., widget=0x55bd7954e720) at kernel/qwidgetbackingstore.cpp:154
#52 QWidgetBackingStore::qt_flush (widget=0x55bd7954e720, region=..., backingStore=<optimized out>, tlw=<optimized out>, widgetTextures=<optimized out>, widgetBackingStore=<optimized out>) at kernel/qwidgetbackingstore.cpp:83
#53 0x00007f737ece7618 in QWidgetBackingStore::flush (this=this@entry=0x55bd783ba230, widget=widget@entry=0x0) at kernel/qwidgetbackingstore.cpp:1442
#54 0x00007f737ece8c40 in QWidgetBackingStore::endPaint (beginPaintInfo=<synthetic pointer>, backingStore=<optimized out>, cleaned=..., this=0x55bd783ba230) at kernel/qwidgetbackingstore.cpp:363
#55 QWidgetBackingStore::doSync (this=<optimized out>) at kernel/qwidgetbackingstore.cpp:1426
#56 0x00007f737ece8e75 in QWidgetBackingStore::sync (this=0x55bd783ba230, exposedWidget=0x55bd7954e720, exposedRegion=...) at kernel/qwidgetbackingstore.cpp:1178
#57 0x00007f737ed010db in QWidgetPrivate::syncBackingStore (this=this@entry=0x55bd78df3130, region=...) at ../../include/QtWidgets/5.12.4/QtWidgets/private/../../../../../src/widgets/kernel/qwidget_p.h:304
#58 0x00007f737ed3743c in QWidgetWindow::handleExposeEvent (this=<optimized out>, event=0x7ffe0a2df860) at ../../include/QtGui/../../src/gui/kernel/qevent.h:442
#59 0x00007f737ed37e30 in QWidgetWindow::event (event=0x7ffe0a2df860, this=0x55bd783b9960) at kernel/qwidgetwindow.cpp:328
#60 QWidgetWindow::event (this=0x55bd783b9960, event=0x7ffe0a2df860) at kernel/qwidgetwindow.cpp:224
#61 0x00007f737ecd6af6 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55bd783b9960, e=0x7ffe0a2df860) at kernel/qapplication.cpp:3737
#62 0x00007f737ecdfe80 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3483
#63 0x00007f737e375ae8 in QCoreApplication::notifyInternal2 (receiver=0x55bd783b9960, event=0x7ffe0a2df860) at kernel/qcoreapplication.cpp:1084
#64 0x00007f737e748c76 in QGuiApplicationPrivate::processExposeEvent (e=0x55bd7c4dd4e0) at kernel/qguiapplication.cpp:3071
#65 0x00007f737e748eb4 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x55bd7c4dd4e0) at kernel/qguiapplication.cpp:1907
#66 0x00007f737e7254fb in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1151
#67 0x00007f737e725668 in QWindowSystemInterface::flushWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1115
#68 0x00007f735e1bfb09 in QtWaylandClient::QWaylandWindow::applyConfigure (this=0x55bd788c5770) at /usr/include/qt5/QtCore/qflags.h:120
#69 0x00007f737e3a0bfa in QObject::event (this=0x55bd788c5770, e=<optimized out>) at kernel/qobject.cpp:1260
#70 0x00007f737ecd6af6 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55bd788c5770, e=0x55bd7954dfc0) at kernel/qapplication.cpp:3737
#71 0x00007f737ecdfe80 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3483
#72 0x00007f737e375ae8 in QCoreApplication::notifyInternal2 (receiver=0x55bd788c5770, event=0x55bd7954dfc0) at kernel/qcoreapplication.cpp:1084
#73 0x00007f737e378a93 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55bd77f2a910) at kernel/qcoreapplication.cpp:1821
#74 0x00007f737e3cae47 in postEventSourceDispatch (s=s@entry=0x55bd77fb4ec0) at kernel/qeventdispatcher_glib.cpp:276
#75 0x00007f737ac4eedd in g_main_dispatch (context=0x55bd77f8cb40) at ../glib/gmain.c:3189
#76 g_main_context_dispatch (context=context@entry=0x55bd77f8cb40) at ../glib/gmain.c:3854
#77 0x00007f737ac4f270 in g_main_context_iterate (context=context@entry=0x55bd77f8cb40, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3927
#78 0x00007f737ac4f313 in g_main_context_iteration (context=0x55bd77f8cb40, may_block=may_block@entry=1) at ../glib/gmain.c:3988
#79 0x00007f737e3cabd5 in QEventDispatcherGlib::processEvents (this=0x55bd77f88db0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#80 0x00007f737e3749eb in QEventLoop::exec (this=this@entry=0x7ffe0a2dff70, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#81 0x00007f737e37c726 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#82 0x000055bd7778584b in main (argc=<optimized out>, argv=<optimized out>) at /usr/include/qt5/QtCore/qcoreapplication.h:116

helgrind says on exit:

==3256== Thread #1: Exiting thread still holds 1 lock
==3256==    at 0x6146FAD: syscall (syscall.S:38)
==3256==    by 0x59F7A24: _q_futex (qfutex_p.h:92)
==3256==    by 0x59F7A24: futexWait<QBasicAtomicPointer<QMutexData> > (qfutex_p.h:107)
==3256==    by 0x59F7A24: lockInternal_helper<false> (qmutex_linux.cpp:142)
==3256==    by 0x59F7A24: QBasicMutex::lockInternal() (qmutex_linux.cpp:159)
==3256==    by 0x483ED5B: QMutex_lock_WRK (hg_intercepts.c:3041)
==3256==    by 0x48413AE: QMutex::lock() (hg_intercepts.c:3055)
==3256==    by 0x26167CEC: UnknownInlinedFun (qmutex.h:206)
==3256==    by 0x26167CEC: QtWaylandClient::QWaylandWindow::waitForFrameSync(int) (qwaylandwindow.cpp:664)
==3256==    by 0x260EB021: QtWaylandClient::QWaylandGLContext::swapBuffers(QPlatformSurface*) (qwaylandglcontext.cpp:566)
==3256==    by 0x5553880: QOpenGLContext::swapBuffers(QSurface*) (qopenglcontext.cpp:1115)
==3256==    by 0x57A95CE: QPlatformBackingStore::composeAndFlush(QWindow*, QRegion const&, QPoint const&, QPlatformTextureList*, bool) (qplatformbackingstore.cpp:463)
==3256==    by 0x4EE0C05: qt_flush (qwidgetbackingstore.cpp:154)
==3256==    by 0x4EE0C05: QWidgetBackingStore::qt_flush(QWidget*, QRegion const&, QBackingStore*, QWidget*, QPlatformTextureList*, QWidgetBackingStore*) (qwidgetbackingstore.cpp:83)
==3256==    by 0x4EE2617: QWidgetBackingStore::flush(QWidget*) (qwidgetbackingstore.cpp:1442)
==3256==    by 0x4EE3C3F: endPaint (qwidgetbackingstore.cpp:363)
==3256==    by 0x4EE3C3F: QWidgetBackingStore::doSync() (qwidgetbackingstore.cpp:1426)
==3256==    by 0x4EE3FC0: QWidgetBackingStore::sync() (qwidgetbackingstore.cpp:1204)
Comment 4 Patrick Silva 2020-06-15 14:20:12 UTC
kmail is still freezing on Wayland.

Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.19.80
KDE Frameworks Version: 5.71.0
Qt Version: 5.14.2