Bug 442332

Summary: Dolphin crashes when undoing file copy
Product: [Frameworks and Libraries] frameworks-kio Reporter: Patrick Silva <bugseforuns>
Component: generalAssignee: KIO Bugs <kio-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: kdelibs-bugs, kfm-devel, meven29
Priority: NOR    
Version: git master   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 5.87
Sentry Crash Report:

Description Patrick Silva 2021-09-12 11:28:22 UTC
Application: dolphin (21.11.70)

Qt Version: 5.15.3
Frameworks Version: 5.86.0
Operating System: Linux 5.11.0-27-generic x86_64
Windowing System: Wayland
Distribution: KDE neon Unstable Edition
DrKonqi: 5.22.80 [CoredumpBackend]

-- Information about the crash:
- What I was doing when the application crashed:
I can reproduce this crash on both Arch Linux (with Dolphin 21.08.1) and neon unstable.
copy a file to another folder, press ctrl+z, click on "Delete" button of the dialog to confirm permanent deletion. Dolphin crashes.

The crash can be reproduced every time.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[New LWP 2899]
[New LWP 2910]
[New LWP 2901]
[New LWP 2903]
[New LWP 2905]
[New LWP 2908]
[New LWP 2906]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/dolphin'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __GI_raise (sig=sig@entry=11) at ../sysdeps/unix/sysv/linux/raise.c:50
[Current thread is 1 (Thread 0x7fe662a709c0 (LWP 2899))]
__preamble__

[Current thread is 1 (Thread 0x7fe662a709c0 (LWP 2899))]

Thread 7 (Thread 0x7fe659e39700 (LWP 2906)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55ffee924b78) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55ffee924b28, cond=0x55ffee924b50) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55ffee924b50, mutex=0x55ffee924b28) at pthread_cond_wait.c:647
#3  0x00007fe65b14aa4b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fe65b14a64b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fe665fc4609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe6674c0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fe659638700 (LWP 2908)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55ffee924b78) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55ffee924b28, cond=0x55ffee924b50) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55ffee924b50, mutex=0x55ffee924b28) at pthread_cond_wait.c:647
#3  0x00007fe65b14aa4b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fe65b14a64b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fe665fc4609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe6674c0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fe65a63a700 (LWP 2905)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55ffee924b78) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55ffee924b28, cond=0x55ffee924b50) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55ffee924b50, mutex=0x55ffee924b28) at pthread_cond_wait.c:647
#3  0x00007fe65b14aa4b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fe65b14a64b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fe665fc4609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe6674c0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fe65ae3b700 (LWP 2903)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55ffee924b78) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55ffee924b28, cond=0x55ffee924b50) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x55ffee924b50, mutex=0x55ffee924b28) at pthread_cond_wait.c:647
#3  0x00007fe65b14aa4b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fe65b14a64b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fe665fc4609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007fe6674c0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fe66216d700 (LWP 2901)):
#0  0x00007fe6674b3aff in __GI___poll (fds=0x7fe65c005240, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fe66554636e in g_main_context_poll (priority=<optimized out>, n_fds=3, fds=0x7fe65c005240, timeout=<optimized out>, context=0x7fe65c000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fe65c000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fe6655464a3 in g_main_context_iteration (context=0x7fe65c000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fe667a815d2 in QEventDispatcherGlib::processEvents (this=0x7fe65c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fe667a2587b in QEventLoop::exec (this=this@entry=0x7fe66216cbb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fe66783f292 in QThread::exec (this=this@entry=0x7fe668b5ad80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fe668ad6f4b in QDBusConnectionManager::run (this=0x7fe668b5ad80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
#8  0x00007fe66784042c in QThreadPrivate::start (arg=0x7fe668b5ad80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329
#9  0x00007fe665fc4609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fe6674c0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fe658e37700 (LWP 2910)):
#0  0x00007fe6674b3aff in __GI___poll (fds=0x7fe648004e60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fe66554636e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fe648004e60, timeout=<optimized out>, context=0x7fe648000c20) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x7fe648000c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007fe6655464a3 in g_main_context_iteration (context=0x7fe648000c20, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007fe667a815d2 in QEventDispatcherGlib::processEvents (this=0x7fe648000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fe667a2587b in QEventLoop::exec (this=this@entry=0x7fe658e36be0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007fe66783f292 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007fe66784042c in QThreadPrivate::start (arg=0x55ffeeea8ff0) at thread/qthread_unix.cpp:329
#8  0x00007fe665fc4609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fe6674c0293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fe662a709c0 (LWP 2899)):
[KCrash Handler]
#3  0x00007fe66987adda in ?? () from /lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5
#4  0x00007fe6698772cd in ?? () from /lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5
#5  0x00007fe6698774fe in ?? () from /lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5
#6  0x00007fe667a5dd9e in QtPrivate::QSlotObjectBase::call (a=0x7fffc7241cb0, r=0x7fe6699057e0, this=0x55ffef9ac330) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#7  doActivate<false> (sender=0x55ffef9ae5f0, signal_index=5, argv=0x7fffc7241cb0) at kernel/qobject.cpp:3886
#8  0x00007fe667a57167 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7fe66967eaa0 <KIO::AskUserActionInterface::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffc7241cb0) at kernel/qobject.cpp:3946
#9  0x00007fe6694f6565 in KIO::AskUserActionInterface::askUserDeleteResult (this=<optimized out>, _t1=<optimized out>, _t2=..., _t3=<optimized out>, _t4=<optimized out>) at ./obj-x86_64-linux-gnu/src/core/KF5KIOCore_autogen/EWIEGA46WW/moc_askuseractioninterface.cpp:225
#10 0x00007fe669862820 in ?? () from /lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5
#11 0x00007fe667a5dd9e in QtPrivate::QSlotObjectBase::call (a=0x7fffc7241e50, r=0x55ffef9ae5f0, this=0x55ffefaada90) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#12 doActivate<false> (sender=0x55ffef99ab10, signal_index=7, argv=0x7fffc7241e50) at kernel/qobject.cpp:3886
#13 0x00007fe667a57167 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7fe668a29840 <QDialog::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffc7241e50) at kernel/qobject.cpp:3946
#14 0x00007fe66870d302 in QDialog::finished (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qdialog.cpp:230
#15 0x00007fe667a5dd9e in QtPrivate::QSlotObjectBase::call (a=0x7fffc7241f70, r=0x55ffef99ab10, this=0x55ffefaa5ca0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#16 doActivate<false> (sender=0x55ffef9a9f70, signal_index=7, argv=0x7fffc7241f70) at kernel/qobject.cpp:3886
#17 0x00007fe667a57167 in QMetaObject::activate (sender=sender@entry=0x55ffef9a9f70, m=m@entry=0x7fe668a227c0 <QDialogButtonBox::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffc7241f70) at kernel/qobject.cpp:3946
#18 0x00007fe6686a3473 in QDialogButtonBox::clicked (this=this@entry=0x55ffef9a9f70, _t1=<optimized out>, _t1@entry=0x55ffefaa46e0) at .moc/moc_qdialogbuttonbox.cpp:281
#19 0x00007fe6686a3bd9 in QDialogButtonBoxPrivate::_q_handleButtonClicked (this=<optimized out>) at widgets/qdialogbuttonbox.cpp:870
#20 0x00007fe667a5ddd0 in doActivate<false> (sender=0x55ffefaa46e0, signal_index=9, argv=0x7fffc72420c0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#21 0x00007fe667a57167 in QMetaObject::activate (sender=sender@entry=0x55ffefaa46e0, m=m@entry=0x7fe668a19600 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffc72420c0) at kernel/qobject.cpp:3946
#22 0x00007fe6685fac66 in QAbstractButton::clicked (this=this@entry=0x55ffefaa46e0, _t1=<optimized out>) at .moc/moc_qabstractbutton.cpp:308
#23 0x00007fe6685fae8e in QAbstractButtonPrivate::emitClicked (this=0x55ffef5b6af0) at widgets/qabstractbutton.cpp:415
#24 0x00007fe6685fc363 in QAbstractButtonPrivate::click (this=0x55ffef5b6af0) at widgets/qabstractbutton.cpp:408
#25 0x00007fe6685fc525 in QAbstractButton::mouseReleaseEvent (this=0x55ffefaa46e0, e=0x7fffc7242680) at widgets/qabstractbutton.cpp:1044
#26 0x00007fe668545cf6 in QWidget::event (this=0x55ffefaa46e0, event=0x7fffc7242680) at kernel/qwidget.cpp:8664
#27 0x00007fe6685fd753 in QAbstractButton::event (this=this@entry=0x55ffefaa46e0, e=e@entry=0x7fffc7242680) at widgets/qabstractbutton.cpp:1001
#28 0x00007fe6686a0d43 in QPushButton::event (this=0x55ffefaa46e0, e=0x7fffc7242680) at widgets/qpushbutton.cpp:709
#29 0x00007fe668502dc3 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55ffefaa46e0, e=0x7fffc7242680) at kernel/qapplication.cpp:3632
#30 0x00007fe66850be77 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3076
#31 0x00007fe667a26d7a in QCoreApplication::notifyInternal2 (receiver=0x55ffefaa46e0, event=0x7fffc7242680) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#32 0x00007fe66850b0a7 in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x55ffefaa46e0, event=event@entry=0x7fffc7242680, alienWidget=alienWidget@entry=0x55ffefaa46e0, nativeWidget=0x55ffef99ab10, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2614
#33 0x00007fe668560f44 in QWidgetWindow::handleMouseEvent (this=0x55ffefaadbf0, event=0x7fffc7242b00) at /usr/include/c++/9/bits/atomic_base.h:413
#34 0x00007fe668564264 in QWidgetWindow::event (event=0x7fffc7242b00, this=0x55ffefaadbf0) at kernel/qwidgetwindow.cpp:300
#35 QWidgetWindow::event (this=0x55ffefaadbf0, event=0x7fffc7242b00) at kernel/qwidgetwindow.cpp:239
#36 0x00007fe668502dc3 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55ffefaadbf0, e=0x7fffc7242b00) at kernel/qapplication.cpp:3632
#37 0x00007fe66850bbb8 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3156
#38 0x00007fe667a26d7a in QCoreApplication::notifyInternal2 (receiver=0x55ffefaadbf0, event=0x7fffc7242b00) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#39 0x00007fe667e0c4e8 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at kernel/qguiapplication.cpp:2282
#40 0x00007fe667e0db55 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x55ffefaa63a0) at kernel/qguiapplication.cpp:2002
#41 0x00007fe667de57ac in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:1169
#42 0x00007fe665347554 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
#43 0x00007fe66554617d in g_main_dispatch (context=0x55ffee8d7480) at ../../../glib/gmain.c:3309
#44 g_main_context_dispatch (context=context@entry=0x55ffee8d7480) at ../../../glib/gmain.c:3974
#45 0x00007fe665546400 in g_main_context_iterate (context=context@entry=0x55ffee8d7480, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4047
#46 0x00007fe6655464a3 in g_main_context_iteration (context=0x55ffee8d7480, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#47 0x00007fe667a815d2 in QEventDispatcherGlib::processEvents (this=0x55ffee8d5fc0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#48 0x00007fe667a2587b in QEventLoop::exec (this=this@entry=0x7fffc7242ea0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#49 0x00007fe667a2da34 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#50 0x000055ffee2a41e3 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:230

Possible duplicates by query: bug 442223, bug 442026, bug 441856, bug 441620, bug 441549.

Report to https://bugs.kde.org/
Comment 1 Méven Car 2021-10-01 15:58:18 UTC
Thread 1 "dolphin" received signal SIGSEGV, Segmentation fault.
QList<KIO::BasicOperation>::QList (this=this@entry=0x7fffffffc718, l=...)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:856
856         if (!d->ref.ref()) {
(gdb) bt
#0  QList<KIO::BasicOperation>::QList (this=this@entry=0x7fffffffc718, l=...)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:856
#1  0x00007ffff7bc6237 in QQueue<KIO::BasicOperation>::QQueue (this=0x7fffffffc718)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qqueue.h:49
#2  KIO::UndoCommand::UndoCommand (this=0x7fffffffc710) at /home/meven/kde/src/kio/src/widgets/fileundomanager_p.h:52
#3  QStack<KIO::UndoCommand>::pop (this=0x555555786c30) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstack.h:62
#4  KIO::FileUndoManagerPrivate::slotPop (this=this@entry=0x555555786c20)
    at /home/meven/kde/src/kio/src/widgets/fileundomanager.cpp:641
#5  0x00007ffff7bc64fe in KIO::FileUndoManagerPrivate::startUndo (this=0x555555786c20)
    at /home/meven/kde/src/kio/src/widgets/fileundomanager.cpp:389
#6  0x00007ffff5e7d5c7 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffc900, 
    r=0x7ffff7c48620 <(anonymous namespace)::Q_QGS_globalFileUndoManager::innerFunction()::holder>, this=0x555556456ae0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#7  doActivate<false> (sender=0x55555685ac50, signal_index=5, argv=argv@entry=0x7fffffffc900) at kernel/qobject.cpp:3886
#8  0x00007ffff5e76728 in QMetaObject::activate (sender=<optimized out>, 
    m=m@entry=0x7ffff79fbaa0 <KIO::AskUserActionInterface::staticMetaObject>, local_signal_index=local_signal_index@entry=2, 
    argv=argv@entry=0x7fffffffc900) at kernel/qobject.cpp:3946
#9  0x00007ffff78c3295 in KIO::AskUserActionInterface::askUserDeleteResult (this=<optimized out>, _t1=<optimized out>, 
    _t1@entry=true, _t2=..., _t3=<optimized out>, _t4=<optimized out>)
    at /home/meven/kde/build/kio/src/core/KF5KIOCore_autogen/EWIEGA46WW/moc_askuseractioninterface.cpp:225
#10 0x00007ffff7bb7270 in operator() (buttonCode=16384, __closure=0x555556ddec50)
    at /home/meven/kde/src/kio/src/widgets/widgetsaskuseractionhandler.cpp:197
#11 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, KIO::WidgetsAskUserActionHandler::askUserDelete(const QList<QUrl>&, KIO::AskUserActionInterface::DeletionType, KIO::AskUserActionInterface::ConfirmationType, QWidget*)::<lambda(int)> >::call (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146
Comment 2 Méven Car 2021-10-01 16:54:03 UTC
Somehow the startUndo() function is called twice because as if KIO::AskUserActionInterface::askUserDeleteResult was emitted twice with the same arguments even.
Comment 3 Méven Car 2021-10-01 17:26:25 UTC
The two call to have the exact same backtrace, and are called within ~ 5 ms.

allowDelete (QUrl("file:///home/meven/test")) 0 DolphinMainWindow(0x55555578a2a0, name="Dolphin#1") QDateTime(2021-10-01 19:08:19.276 CEST Qt::LocalTime)
allowDelete (QUrl("file:///home/meven/test")) 0 DolphinMainWindow(0x55555578a2a0, name="Dolphin#1") QDateTime(2021-10-01 19:08:19.281 CEST Qt::LocalTime)
Comment 4 Bug Janitor Service 2021-10-02 10:58:05 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kwidgetsaddons/-/merge_requests/101
Comment 5 Méven Car 2021-10-03 06:27:06 UTC
Git commit 99d8dca607327ebf0b6d2f3cff089207c61d7276 by Méven Car, on behalf of Ahmad Samir.
Committed on 03/10/2021 at 05:34.
Pushed by ahmadsamir into branch 'master'.

KMessageDialog: disconnect default buttonbox signals as we emit done() manually

QDialogButtonBox internally creates some default connections, e.g. connects
OK clicked() to accepted(); then we emit done(buttoncode), the resultant is
that one button press causes two clicked signals to get emitted; which leads
some interesting behavoiur, e.g. undo'ing a file copy in dolphin, invokes
the askuserdelete dialog, you click deleted and get a crash in KIO, since
the code tries to undo the copy twice...
FIXED-IN: 5.87

M  +6    -0    src/kmessagedialog.cpp

https://invent.kde.org/frameworks/kwidgetsaddons/commit/99d8dca607327ebf0b6d2f3cff089207c61d7276