Bug 385289 - Kmail: Crash when moving or deleting imap folder (Wayland)
Summary: Kmail: Crash when moving or deleting imap folder (Wayland)
Status: REOPENED
Alias: None
Product: kmail2
Classification: Applications
Component: commands and actions (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords: wayland
: 385923 (view as bug list)
Depends on:
Blocks:
 
Reported: 2017-10-02 09:04 UTC by Rainer Finke
Modified: 2019-10-17 07:33 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
kmail gdb (38.23 KB, text/plain)
2017-10-15 23:11 UTC, Andrius Štikonas
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rainer Finke 2017-10-02 09:04:25 UTC
Kmail 5.6.1 is crashing when I move or delete a imap folder, tested on Plasma-Wayland 5.11 Beta on Arch Linux with Qt 5.9.1 and KDE Frameworks 5.38.0.
Comment 1 Laurent Montel 2017-10-02 09:40:31 UTC
Hi,
Could you provide a backtrace ?
Thanks
Comment 2 Rainer Finke 2017-10-02 09:44:33 UTC
I don't think I can, sorry, journcalctl -f shows only the following:

Okt 02 11:41:29 pc kmail[3014]: org.kde.akonadi.ETM: collection: "test"
Okt 02 11:41:29 pc kmail[3014]: org.kde.akonadi.ETM: Fetch job took  69 msec
Okt 02 11:41:29 pc kmail[3014]: org.kde.akonadi.ETM: was item fetch job: items: 0
Okt 02 11:41:31 pc kmail[3014]: The Wayland connection experienced a fatal error (Protokollfehler)
Okt 02 11:41:31 pc kwalletd5[1005]: slotServiceOwnerChanged  ":1.86" ,  ":1.86" ,  ""

DrKonqi doesn't notice anything... If I can look at other logs, please let me know.
Comment 3 Andrius Štikonas 2017-10-13 23:20:20 UTC
I think I get this crash when I try to drag email to another folder too.

gdb backtrace just tells "No stack."

The following error message is printed to the terminal:

wl_data_device@8: error 0: Surface doesn't have pointer grab
The Wayland connection experienced a fatal error (Protocol error)
Comment 4 David Edmundson 2017-10-15 15:27:39 UTC
probably QtWayland
‎[17:26] ‎<‎d_ed‎>‎ or kwin potentially ,you're getting told you made a protocol error and cut off, which can happen from either end

‎[17:27] ‎<‎d_ed‎>‎ you have no backtrace as wayland asserted
‎[17:27] ‎<‎d_ed‎>‎ if you put a break on exit you'll get a trace
Comment 5 Andrius Štikonas 2017-10-15 17:33:59 UTC
Ok, I obtained the following backtrace with breakpoint on exit

Thread 1 (Thread 0x7fffbccec8c0 (LWP 11595)):
#0  0x00007ffff1f7644d in write () from /lib64/libc.so.6
#1  0x00007fffdd7f0746 in g_wakeup_signal (wakeup=0x6418c0) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gwakeup.c:239
#2  0x00007fffdd79aa15 in g_main_context_wakeup (context=0x7fffac000990) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gmain.c:4578
#3  0x00007ffff2ecee95 in QEventDispatcherGlib::wakeUp (this=0x7fffac0008c0) at kernel/qeventdispatcher_glib.cpp:592
#4  0x00007ffff2e4badb in QCoreApplication::postEvent (receiver=0x7fffac0032f0, event=0x4267dc0, priority=0) at kernel/qcoreapplication.cpp:1465
#5  0x00007ffff2e8e0fd in QMetaObject::activate (sender=0x7fff24029200, signalOffset=0, local_signal_index=0, argv=0x7fffffffb0a0) at kernel/qobject.cpp:3732
#6  0x00007ffff2e8db1e in QMetaObject::activate (sender=0x7fff24029200, m=0x7ffff314fd20 <QObject::staticMetaObject>, local_signal_index=0, argv=0x7fffffffb0a0) at kernel/qobject.cpp:3628
#7  0x00007ffff2e910bc in QObject::destroyed (this=0x7fff24029200, _t1=0x7fff24029200) at .moc/moc_qobject.cpp:215
#8  0x00007ffff2e871e8 in QObject::~QObject (this=0x7fff24029200, __in_chrg=<optimized out>) at kernel/qobject.cpp:901
#9  0x00007ffff7f140b9 in QDBusServiceWatcher::~QDBusServiceWatcher() () from /usr/lib64/libQt5DBus.so.5
#10 0x00007ffff2e89197 in QObjectPrivate::deleteChildren (this=0x7fff24038fd0) at kernel/qobject.cpp:1992
#11 0x00007ffff2e87736 in QObject::~QObject (this=0x7fff24038ee0, __in_chrg=<optimized out>) at kernel/qobject.cpp:1022
#12 0x00007ffff5d0bb9d in ?? () from /usr/lib64/libKF5KIOCore.so.5
#13 0x00007ffff5d0bcc1 in KSslCertificateManager::~KSslCertificateManager() () from /usr/lib64/libKF5KIOCore.so.5
#14 0x00007ffff5d0bce9 in ?? () from /usr/lib64/libKF5KIOCore.so.5
#15 0x00007ffff1ed0b98 in ?? () from /lib64/libc.so.6
#16 0x00007ffff1ed0be5 in exit () from /lib64/libc.so.6
#17 0x00007fffb6239eb8 in QtWaylandClient::QWaylandDisplay::exitWithError (this=0x66d610) at qwaylanddisplay.cpp:209
#18 0x00007fffb6239e50 in QtWaylandClient::QWaylandDisplay::flushRequests (this=0x66d610) at qwaylanddisplay.cpp:192
#19 0x00007fffb626f02e in QtWaylandClient::QWaylandDisplay::qt_static_metacall (_o=0x66d610, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffffffb4e0) at .moc/moc_qwaylanddisplay_p.cpp:76
#20 0x00007ffff2e8e328 in QMetaObject::activate (sender=0x6f7ac0, signalOffset=3, local_signal_index=0, argv=0x7fffffffb4e0) at kernel/qobject.cpp:3766
#21 0x00007ffff2e8db1e in QMetaObject::activate (sender=0x6f7ac0, m=0x7ffff3157f00 <QSocketNotifier::staticMetaObject>, local_signal_index=0, argv=0x7fffffffb4e0) at kernel/qobject.cpp:3628
#22 0x00007ffff2e9a2cd in QSocketNotifier::activated (this=0x6f7ac0, _t1=3, _t2=...) at .moc/moc_qsocketnotifier.cpp:137
---Type <return> to continue, or q <return> to quit---
#23 0x00007ffff2e9a003 in QSocketNotifier::event (this=0x6f7ac0, e=0x7fffffffba20) at kernel/qsocketnotifier.cpp:266
#24 0x00007ffff3931bfc in QApplicationPrivate::notify_helper (this=0x647280, receiver=0x6f7ac0, e=0x7fffffffba20) at kernel/qapplication.cpp:3722
#25 0x00007ffff392ef9d in QApplication::notify (this=0x7fffffffd3c0, receiver=0x6f7ac0, e=0x7fffffffba20) at kernel/qapplication.cpp:3094
#26 0x00007ffff2e4ae9f in QCoreApplication::notifyInternal2 (receiver=0x6f7ac0, event=0x7fffffffba20) at kernel/qcoreapplication.cpp:1018
#27 0x00007ffff2e4f86e in QCoreApplication::sendEvent (receiver=0x6f7ac0, event=0x7fffffffba20) at kernel/qcoreapplication.h:233
#28 0x00007ffff2ecdc90 in socketNotifierSourceDispatch (source=0x68b8e0) at kernel/qeventdispatcher_glib.cpp:106
#29 0x00007fffdd798cf3 in g_main_dispatch (context=0x6aae10) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gmain.c:3203
#30 0x00007fffdd799c07 in g_main_context_dispatch (context=0x6aae10) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gmain.c:3856
#31 0x00007fffdd799dfa in g_main_context_iterate (context=0x6aae10, block=1, dispatch=1, self=0x6cb000) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gmain.c:3929
#32 0x00007fffdd799ed2 in g_main_context_iteration (context=0x6aae10, may_block=1) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gmain.c:3990
#33 0x00007ffff2ece9f8 in QEventDispatcherGlib::processEvents (this=0x681d20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#34 0x00007fffb6284ae6 in QPAEventDispatcherGlib::processEvents (this=0x681d20, flags=...) at qeventdispatcher_glib.cpp:122
#35 0x00007ffff2e47cbc in QEventLoop::processEvents (this=0x42f2710, flags=...) at kernel/qeventloop.cpp:134
#36 0x00007ffff2e47fbd in QEventLoop::exec (this=0x42f2710, flags=...) at kernel/qeventloop.cpp:212
#37 0x00007ffff32765bd in QBasicDrag::drag (this=0x689b80, o=0x4152990) at kernel/qsimpledrag.cpp:195
#38 0x00007ffff329a3cb in QDragManager::drag (this=0xab6de0, o=0x4152990) at kernel/qdnd.cpp:141
#39 0x00007ffff3299155 in QDrag::exec (this=0x4152990, supportedActions=..., defaultDropAction=Qt::IgnoreAction) at kernel/qdrag.cpp:284
#40 0x00007ffff3298ff1 in QDrag::exec (this=0x4152990, supportedActions=...) at kernel/qdrag.cpp:240
#41 0x00007ffff17d029d in MessageList::Widget::viewStartDragRequest() () from /usr/lib64/libKF5MessageList.so.5
#42 0x00007ffff397a115 in QWidget::event (this=0xb82f90, event=0x7fffffffc8b0) at kernel/qwidget.cpp:8810
#43 0x00007ffff3a69815 in QFrame::event (this=0xb82f90, e=0x7fffffffc8b0) at widgets/qframe.cpp:550
#44 0x00007ffff3a754e2 in QAbstractScrollArea::viewportEvent (this=0xb82f90, e=0x7fffffffc8b0) at widgets/qabstractscrollarea.cpp:1208
#45 0x00007ffff3c4bc91 in QAbstractItemView::viewportEvent (this=0xb82f90, event=0x7fffffffc8b0) at itemviews/qabstractitemview.cpp:1748
#46 0x00007ffff3cd797c in QTreeView::viewportEvent (this=0xb82f90, event=0x7fffffffc8b0) at itemviews/qtreeview.cpp:1312
#47 0x00007ffff3a768f7 in QAbstractScrollAreaPrivate::viewportEvent (this=0xb75290, event=0x7fffffffc8b0) at widgets/qabstractscrollarea_p.h:112
#48 0x00007ffff3a769e2 in QAbstractScrollAreaFilter::eventFilter (this=0xb5cca0, o=0xb6adc0, e=0x7fffffffc8b0) at widgets/qabstractscrollarea_p.h:128
#49 0x00007ffff2e4b23f in QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=0xb6adc0, event=0x7fffffffc8b0) at kernel/qcoreapplication.cpp:1129
#50 0x00007ffff3931bd3 in QApplicationPrivate::notify_helper (this=0x647280, receiver=0xb6adc0, e=0x7fffffffc8b0) at kernel/qapplication.cpp:3718
#51 0x00007ffff392f6ce in QApplication::notify (this=0x7fffffffd3c0, receiver=0xb6adc0, e=0x7fffffffc8b0) at kernel/qapplication.cpp:3198
#52 0x00007ffff2e4ae9f in QCoreApplication::notifyInternal2 (receiver=0xb6adc0, event=0x7fffffffc8b0) at kernel/qcoreapplication.cpp:1018
#53 0x00007ffff39349ec in QCoreApplication::sendSpontaneousEvent (receiver=0xb6adc0, event=0x7fffffffc8b0) at ../../src/corelib/kernel/qcoreapplication.h:236
#54 0x00007ffff392e0f7 in QApplicationPrivate::sendMouseEvent (receiver=0xb6adc0, event=0x7fffffffc8b0, alienWidget=0xb6adc0, nativeWidget=0xad0140, buttonDown=0x7ffff3fe2c80 <qt_button_down>, 
    lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:2702
#55 0x00007ffff39a98a6 in QWidgetWindow::handleMouseEvent (this=0xad0ba0, event=0x7fffffffce80) at kernel/qwidgetwindow.cpp:622
#56 0x00007ffff39a8252 in QWidgetWindow::event (this=0xad0ba0, event=0x7fffffffce80) at kernel/qwidgetwindow.cpp:243
#57 0x00007ffff3931bfc in QApplicationPrivate::notify_helper (this=0x647280, receiver=0xad0ba0, e=0x7fffffffce80) at kernel/qapplication.cpp:3722
#58 0x00007ffff392ef9d in QApplication::notify (this=0x7fffffffd3c0, receiver=0xad0ba0, e=0x7fffffffce80) at kernel/qapplication.cpp:3094
#59 0x00007ffff2e4ae9f in QCoreApplication::notifyInternal2 (receiver=0xad0ba0, event=0x7fffffffce80) at kernel/qcoreapplication.cpp:1018
#60 0x00007ffff3285cb2 in QCoreApplication::sendSpontaneousEvent (receiver=0xad0ba0, event=0x7fffffffce80) at ../../src/corelib/kernel/qcoreapplication.h:236
#61 0x00007ffff327dff8 in QGuiApplicationPrivate::processMouseEvent (e=0x40b0450) at kernel/qguiapplication.cpp:1949
#62 0x00007ffff327d3df in QGuiApplicationPrivate::processWindowSystemEvent (e=0x40b0450) at kernel/qguiapplication.cpp:1733
#63 0x00007ffff325dcfd in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:939
#64 0x00007fffb62848d2 in userEventSourceDispatch (source=0x6ff590) at qeventdispatcher_glib.cpp:77
#65 0x00007fffdd798cf3 in g_main_dispatch (context=0x6aae10) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gmain.c:3203
#66 0x00007fffdd799c07 in g_main_context_dispatch (context=0x6aae10) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gmain.c:3856
#67 0x00007fffdd799dfa in g_main_context_iterate (context=0x6aae10, block=1, dispatch=1, self=0x6cb000) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gmain.c:3929
#68 0x00007fffdd799ed2 in g_main_context_iteration (context=0x6aae10, may_block=1) at /usr/src/debug/dev-libs/glib-2.50.3-r1/glib-2.50.3/glib/gmain.c:3990
#69 0x00007ffff2ece9f8 in QEventDispatcherGlib::processEvents (this=0x681d20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#70 0x00007fffb6284ae6 in QPAEventDispatcherGlib::processEvents (this=0x681d20, flags=...) at qeventdispatcher_glib.cpp:122
#71 0x00007ffff2e47cbc in QEventLoop::processEvents (this=0x7fffffffd2f0, flags=...) at kernel/qeventloop.cpp:134
#72 0x00007ffff2e47fbd in QEventLoop::exec (this=0x7fffffffd2f0, flags=...) at kernel/qeventloop.cpp:212
#73 0x00007ffff2e4b635 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1291
---Type <return> to continue, or q <return> to quit---
#74 0x00007ffff327d200 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1679
#75 0x00007ffff392e957 in QApplication::exec () at kernel/qapplication.cpp:2910
#76 0x00000000004047c0 in main (argc=1, argv=0x7fffffffd5d8) at /usr/src/debug/kde-apps/kmail-17.08.2/kmail-17.08.2/src/main.cpp:157
Comment 6 David Edmundson 2017-10-15 20:59:08 UTC
can you do "thread apply all bt" instead.
Comment 7 Andrius Štikonas 2017-10-15 23:11:08 UTC
Created attachment 108367 [details]
kmail gdb
Comment 8 Andrius Štikonas 2017-11-12 23:45:00 UTC
*** Bug 385923 has been marked as a duplicate of this bug. ***
Comment 9 Rainer Finke 2017-11-25 11:02:43 UTC
I still have these issues in Kmail 5.6.80 on Wayland:
1) Crash when moving a mail to another folder
2) Moving or deleting an imap folder

KDE Frameworks 5.40
Qt 5.10 beta 4 (compiled against 5.9.2)
Plasma 5.11.3


$ kmail 
Using Wayland-EGL
Pass a valid window to KWallet::Wallet::openWallet().
Error loading text-to-speech plug-in "speechd"
WebEngine compiled with X11 support, however qpa backend is not xcb. This may fail.
[1125/115538.735208:WARNING:stack_trace_posix.cc(648)] Failed to open file: /home/rainer/#69932 (deleted)
  Error: Datei oder Verzeichnis nicht gefunden
Using the 'wl-shell' shell integration
wl_data_device@8: error 0: Surface doesn't have pointer grab
The Wayland connection experienced a fatal error (Protokollfehler)
Comment 10 Andrius Štikonas 2018-02-07 22:27:59 UTC
Can others still reproduce this?

I think KMail 17.12.1 no longer crashes here.

(I have Qt 5.9.4 + David's patch for QtWayland surfaces)
Comment 11 Andrius Štikonas 2018-02-07 22:53:00 UTC
(In reply to Andrius Štikonas from comment #10)
> Can others still reproduce this?
> 
> I think KMail 17.12.1 no longer crashes here.
> 
> (I have Qt 5.9.4 + David's patch for QtWayland surfaces)

Ok, after reboot it still crashes. So before the reboot there was some problem with mail preview panel (it was black) and then I could more mails just fine.
Comment 12 Rainer Finke 2018-03-25 20:00:29 UTC
Kmail 5.7.80 beta still crashes on Plasma-Wayland 5.12.3 (KDE Frameworks 5.44, Qt 5.11 beta) when trying to move a mail to another folder with the mouse.

$ kmail
Using Wayland-EGL
WebEngine compiled with X11 support, however qpa backend is not xcb. This may fail.
[0325/215615.228747:WARNING:stack_trace_posix.cc(648)] Failed to open file: /home/rainer/#675959 (deleted)
  Error: Datei oder Verzeichnis nicht gefunden
Using the 'xdg-shell-v6' shell integration
wl_data_device@8: error 0: Surface doesn't have pointer grab
The Wayland connection experienced a fatal error (Protokollfehler)
Comment 13 Rainer Finke 2018-04-07 08:27:20 UTC
Kmail 5.7.90 rc still crashes on Plasma-Wayland 5.12.4 (KDE Frameworks 5.44, Qt 5.11 beta).

$ kmail
Using Wayland-EGL
Error loading text-to-speech plug-in "speechd"
WebEngine compiled with X11 support, however qpa backend is not xcb. This may fail.
[0407/102245.246040:WARNING:stack_trace_posix.cc(648)] Failed to open file: /home/rainer/#207806 (deleted)
  Error: Datei oder Verzeichnis nicht gefunden
Using the 'xdg-shell-v6' shell integration
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)                                                                                 
wl_data_device@8: error 0: Surface doesn't have pointer grab                                                             
The Wayland connection experienced a fatal error (Protokollfehler)
Comment 14 Rainer Finke 2018-04-21 10:12:00 UTC
Since the release of KDE Applications 18.04 the new Kmail 5.8 is not crashing anymore. For me this bug is solved.
Comment 15 Andrius Štikonas 2018-04-21 18:17:58 UTC
(In reply to Rainer Finke from comment #14)
> Since the release of KDE Applications 18.04 the new Kmail 5.8 is not
> crashing anymore. For me this bug is solved.

Which Qt version are you using? KMail in 18.04 runs with xcb if Qt is less than 5.11.
Comment 16 Rainer Finke 2018-04-21 18:21:01 UTC
Kmail in KDE Applications 18.04 enforces the xcb platform instead of Wayland. Bug needs to be reopened, Kmail still crashes when I move a imap folder or a mail with the mouse.
Comment 17 Rainer Finke 2018-04-21 18:21:56 UTC
I'm using Qt 5.10.1.
Comment 18 Rainer Finke 2018-07-21 07:28:02 UTC
Kmail 5.8.80 beta1 is still crashing on Wayland.

KDE Frameworks 5.48
Qt 5.11.1
Plasma 5.13.3

$ kmail
Using Wayland-EGL
Error loading text-to-speech plug-in "speechd"
WebEngine compiled with X11 support, however qpa backend is not xcb. This may fail.
[0721/092053.211921:WARNING:stack_trace_posix.cc(699)] Failed to open file: /home/rainer/#56471 (deleted)
  Error: Datei oder Verzeichnis nicht gefunden
Using the 'xdg-shell-v6' shell integration
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
wl_data_device@8: error 0: Surface doesn't have pointer grab
The Wayland connection experienced a fatal error (Protokollfehler)
QIODevice::read (QLocalSocket): device not open
QIODevice::read (QLocalSocket): device not open
Comment 19 Rainer Finke 2018-07-21 07:37:07 UTC
$ WAYLAND_DEBUG=1 kmail
...
[1955566,582]  -> wl_surface@47.frame(new id wl_callback@69)
[1955566,596]  -> wl_surface@47.attach(wl_buffer@68, -8, -8)
[1955566,618]  -> wl_surface@47.damage(0, 0, 16, 16)
[1955566,642]  -> wl_surface@47.commit()
[1955568,313] wl_display@1.delete_id(46)
[1955581,932] wl_pointer@15.motion(1073321, 876,000000, 129,000000)
[1955581,993] wl_pointer@33.motion(1073321, 876,000000, 129,000000)
[1955582,017] wl_pointer@33.frame()
[1955583,635] wl_display@1.error(wl_data_device@8, 0, "Surface doesn't have pointer grab")
wl_data_device@8: error 0: Surface doesn't have pointer grab
The Wayland connection experienced a fatal error (Protokollfehler)
QIODevice::read (QLocalSocket): device not open
QIODevice::read (QLocalSocket): device not open
Comment 20 Rainer Finke 2018-08-14 20:08:27 UTC
Even Kmail 5.8.80 beta 1 is still crashing on Wayland during drag and drop of a mail :-(

$ kmail
Using Wayland-EGL
Error loading text-to-speech plug-in "speechd"
WebEngine compiled with X11 support, however qpa backend is not xcb. This may fail.
[0814/220324.704261:WARNING:stack_trace_posix.cc(699)] Failed to open file: /home/rainer/#269808 (deleted)
  Error: Datei oder Verzeichnis nicht gefunden
inotify_add_watch("/home/rainer/.local/share/messageviewer") failed: "No space left on device"
Using the 'xdg-shell-v6' shell integration
Comment 21 Rainer Finke 2018-11-04 12:06:34 UTC
With Kmail 5.9.2 drag and drop doesn't work anymore so for now at least there is no crash of the application.
Comment 22 Andrius Štikonas 2018-12-03 01:13:04 UTC
(In reply to Rainer Finke from comment #21)
> With Kmail 5.9.2 drag and drop doesn't work anymore so for now at least
> there is no crash of the application.

For me it works with 5.9.3. And doesn't seem to crash.