[kmail2] [Bug 409517] [Wayland] KMail freezes

bugzilla_noreply at kde.org bugzilla_noreply at kde.org
Tue Jul 23 12:01:32 BST 2019


https://bugs.kde.org/show_bug.cgi?id=409517

juha.heljoranta at iki.fi changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |juha.heljoranta at iki.fi

--- Comment #3 from juha.heljoranta at iki.fi ---
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 at entry=0x7f735e25c2b0
<QtWaylandClient::QWaylandWindow::mFrameSyncMutex>) at
thread/qmutex_linux.cpp:159
#5  0x00007f737e1cea88 in QMutex::lock (this=this at 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 at entry=0x55bd783b9970) at kernel/qopenglcontext.cpp:1115
#10 0x00007f737e9d65cf in QPlatformBackingStore::composeAndFlush
(this=this at entry=0x55bd795004b0, window=0x55bd783b9960, region=..., offset=...,
textures=textures at entry=0x7f737f2061e0 <(anonymous
namespace)::Q_QGS_qt_dummy_platformTextureList::innerFunction()::holder>,
translucentBackground=translucentBackground at 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 at entry=0x55bd783ba230, widget=widget at 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 at entry=0x55bd7954e720,
event=event at entry=0x7ffe0a2de4b0) at kernel/qwidget.cpp:9264
#19 0x00007f737ee2d908 in QMainWindow::event (this=this at entry=0x55bd7954e720,
event=event at entry=0x7ffe0a2de4b0) at widgets/qmainwindow.cpp:1339
#20 0x00007f737dc45e0b in KMainWindow::event (this=this at entry=0x55bd7954e720,
ev=ev at 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 at entry=0x55bd783ba230, widget=0x55bd7954e720,
updateTime=updateTime at 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 at entry=0x55bd7954e720,
updateTime=updateTime at entry=QWidgetBackingStore::UpdateNow,
bufferState=bufferState at 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 at entry=0x7ffe0a2dead0, fn=<optimized
out>, rvalue=<optimized out>, rvalue at entry=0x0,
avalue=avalue at entry=0x7ffe0a2deba0) at ../src/x86/ffi64.c:525
#42 0x00007f737f708607 in wl_closure_invoke
(closure=closure at entry=0x55bd7dae1fb0, flags=flags at entry=1, target=<optimized
out>, target at entry=0x55bd7da9f0e0, opcode=opcode at entry=0, data=<optimized out>)
at src/connection.c:1014
#43 0x00007f737f704f18 in dispatch_event (display=display at 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 at 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 at 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 at entry=0x55bd783b9970) at kernel/qopenglcontext.cpp:1115
#50 0x00007f737e9d65cf in QPlatformBackingStore::composeAndFlush
(this=this at entry=0x55bd795004b0, window=0x55bd783b9960, region=..., offset=...,
textures=textures at entry=0x7f737f2061e0 <(anonymous
namespace)::Q_QGS_qt_dummy_platformTextureList::innerFunction()::holder>,
translucentBackground=translucentBackground at 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 at entry=0x55bd783ba230, widget=widget at 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 at 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 at entry=...) at kernel/qwindowsysteminterface.cpp:1151
#67 0x00007f737e725668 in QWindowSystemInterface::flushWindowSystemEvents
(flags=flags at 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 at 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 at entry=0x55bd77f8cb40) at
../glib/gmain.c:3854
#77 0x00007f737ac4f270 in g_main_context_iterate
(context=context at entry=0x55bd77f8cb40, block=block at entry=1,
dispatch=dispatch at entry=1, self=<optimized out>) at ../glib/gmain.c:3927
#78 0x00007f737ac4f313 in g_main_context_iteration (context=0x55bd77f8cb40,
may_block=may_block at 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 at entry=0x7ffe0a2dff70,
flags=..., flags at 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)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Kdepim-bugs mailing list