Bug 431731

Summary: Apps crash in KIO::CopyJobPrivate::skip() while skipping files in the overwrite dialog
Product: [Frameworks and Libraries] frameworks-kio Reporter: Leon <support>
Component: Overwrite dialogAssignee: KIO Bugs <kio-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: a.samirh78, benoit.jaheny, bugseforuns, jens-bugs.kde.org, joaovms25, kdelibs-bugs, krusader-bugs-null, nate, seplexfake
Priority: HI Keywords: drkonqi, regression
Version: 5.78.0   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In: 5.79

Description Leon 2021-01-17 12:39:16 UTC
Application: krusader (2.7.2 "Peace of Mind")

Qt Version: 5.15.2
Frameworks Version: 5.78.0
Operating System: Linux 5.10.7-200.fc33.x86_64 x86_64
Windowing system: X11
Distribution: Fedora 33 (KDE Plasma)

-- Information about the crash:
- What I was doing when the application crashed:
1. Connected to an FTP drive
2. Transferring files
3. Continues for a while until it crashes with internal server error

The crash can be reproduced every time.

-- Backtrace:
Application: Krusader (krusader), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f7755d43c2f in QUrl::QUrl(QUrl const&) () from /lib64/libQt5Core.so.5
#5  0x00007f775726fce0 in KIO::CopyJobPrivate::skip(QUrl const&, bool) () from /lib64/libKF5KIOCore.so.5
#6  0x00007f7757273b42 in KIO::CopyJobPrivate::processFileRenameDialogResult(QList<KIO::CopyInfo>::iterator const&, KIO::RenameDialog_Result, QUrl const&, QDateTime const&) () from /lib64/libKF5KIOCore.so.5
#7  0x00007f775727b0e9 in QtPrivate::QFunctorSlotObject<KIO::CopyJobPrivate::slotResultErrorCopyingFiles(KJob*)::{lambda(KIO::RenameDialog_Result, KJob*)#2}, 2, QtPrivate::List<KIO::RenameDialog_Result, KJob*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [clone .lto_priv.0] () from /lib64/libKF5KIOCore.so.5
#8  0x00007f7755dfe386 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#9  0x00007f775724f5e1 in KIO::AskUserActionInterface::askUserSkipResult(KIO::RenameDialog_Result, KJob*) () from /lib64/libKF5KIOCore.so.5
#10 0x00007f7755dfe386 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#11 0x00007f7756a877b2 in QDialog::finished(int) () from /lib64/libQt5Widgets.so.5
#12 0x00007f7755dfe386 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#13 0x00007f7756978316 in QAbstractButton::clicked(bool) () from /lib64/libQt5Widgets.so.5
#14 0x00007f7756978cde in QAbstractButtonPrivate::emitClicked() () from /lib64/libQt5Widgets.so.5
#15 0x00007f775697a673 in QAbstractButtonPrivate::click() () from /lib64/libQt5Widgets.so.5
#16 0x00007f775697a855 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /lib64/libQt5Widgets.so.5
#17 0x00007f77568c9b1e in QWidget::event(QEvent*) () from /lib64/libQt5Widgets.so.5
#18 0x00007f7756888ec3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
#19 0x00007f775688feeb in QApplication::notify(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
#20 0x00007f7755dcebd8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5
#21 0x00007f775688eefa in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () from /lib64/libQt5Widgets.so.5
#22 0x00007f77568e2375 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () from /lib64/libQt5Widgets.so.5
#23 0x00007f77568e56be in QWidgetWindow::event(QEvent*) () from /lib64/libQt5Widgets.so.5
#24 0x00007f7756888ec3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5
#25 0x00007f7755dcebd8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5
#26 0x00007f775620a143 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /lib64/libQt5Gui.so.5
#27 0x00007f77561eb8cc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Gui.so.5
#28 0x00007f774468b47e in xcbSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt5XcbQpa.so.5
#29 0x00007f775459096f in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#30 0x00007f77545e2758 in g_main_context_iterate.constprop () from /lib64/libglib-2.0.so.0
#31 0x00007f775458dd43 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#32 0x00007f7755e1b6f3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#33 0x00007f7755dcd57b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#34 0x00007f7755dd51b4 in QCoreApplication::exec() () from /lib64/libQt5Core.so.5
#35 0x0000555ddc6d9297 in main ()
[Inferior 1 (process 9086) detached]

Possible duplicates by query: bug 411883, bug 383528, bug 367789, bug 361006, bug 347300.

Reported using DrKonqi
Comment 1 Nate Graham 2021-01-20 01:39:28 UTC
*** Bug 431739 has been marked as a duplicate of this bug. ***
Comment 2 Nate Graham 2021-02-01 15:10:44 UTC
*** Bug 432309 has been marked as a duplicate of this bug. ***
Comment 3 Bug Janitor Service 2021-02-02 09:47:42 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kio/-/merge_requests/335
Comment 4 seplexfake 2021-02-02 14:36:41 UTC
I have put some additional information to my bug report which was marked as a duplicate of this one. https://bugs.kde.org/show_bug.cgi?id=432309
Mainly a very simple way to reproduce this issue (just 4 simple steps) and why it seems to crash (at least in my case).
Comment 5 Ahmad Samir 2021-02-02 15:11:36 UTC
(In reply to seplexfake from comment #4)
> I have put some additional information to my bug report which was marked as
> a duplicate of this one. https://bugs.kde.org/show_bug.cgi?id=432309
> Mainly a very simple way to reproduce this issue (just 4 simple steps) and
> why it seems to crash (at least in my case).

Thanks for that, it gave more info/clues as to what was going south, (and actually the test in the merge request uses something similar). :)
Comment 6 Ahmad Samir 2021-02-02 22:39:36 UTC
Git commit a183dd0d1ee0659e5341c7cb4117df27edd6f125 by Ahmad Samir.
Committed on 02/02/2021 at 09:37.
Pushed by dfaure into branch 'master'.

CopyJob: fix crash with skip/retry

The crash was happening because I was disconnecting the wrong signal in
the lambda connected to KIO::AskUserActionInterface::askUserSkipResult...
FIXED-IN: 5.79

M  +2    -2    src/core/copyjob.cpp

https://invent.kde.org/frameworks/kio/commit/a183dd0d1ee0659e5341c7cb4117df27edd6f125
Comment 7 Nate Graham 2021-02-04 17:31:02 UTC
*** Bug 432489 has been marked as a duplicate of this bug. ***
Comment 8 Ahmad Samir 2021-02-17 00:21:21 UTC
*** Bug 432944 has been marked as a duplicate of this bug. ***
Comment 9 Nate Graham 2021-04-21 19:44:51 UTC
*** Bug 435826 has been marked as a duplicate of this bug. ***