Bug 360488

Summary: dolphin with >=kde-frameworks-5.20 crashes when copy+paste file in same directory
Product: [Frameworks and Libraries] frameworks-kio Reporter: Andreas Sturmlechner <asturm>
Component: generalAssignee: David Faure <faure>
Status: RESOLVED FIXED    
Severity: crash CC: chenghaomanzhouli, cordlandwehr, cyril.baletaud, demm, emmanuelpescosta099, hrvoje.senjan, jc_yeahright, kdelibs-bugs, lambdasoftware, mzs.112000, rapiteanu.catalin, rdieter, rjvbertin, ssadowsky
Priority: NOR Keywords: drkonqi
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: dolphin kcrash with kio debug symbols

Description Andreas Sturmlechner 2016-03-13 17:54:36 UTC
Application: dolphin (15.12.2)
 (Compiled from sources)
Qt Version: 5.5.1
Operating System: Linux 4.5.0-rc6 x86_64
Distribution: "NAME=Gentoo"

-- Information about the crash:
- What I was doing when the application crashed:

1. Pick a random file in folder
2. Copy
3. Paste
4. ...Crash

Reproducible every time.

Renaming a file to an already existing path correctly raises the overwrite preview dialog.

The crash can be reproduced every time.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fd8c7ddd780 (LWP 5320))]

Thread 2 (Thread 0x7fd8ba013700 (LWP 5322)):
#0  0x00007fd8d6d44aed in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fd8cc7dd25a in poll (__timeout=-1, __nfds=1, __fds=0x7fd8b4003020) at /usr/include/bits/poll2.h:46
#2  g_poll (fds=fds@entry=0x7fd8b4003020, nfds=nfds@entry=1, timeout=timeout@entry=-1) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gpoll.c:124
#3  0x00007fd8cc7d0111 in g_main_context_poll (n_fds=1, fds=0x7fd8b4003020, priority=<optimized out>, timeout=-1, context=0x7fd8b4000990) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:4135
#4  g_main_context_iterate (context=context@entry=0x7fd8b4000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3835
#5  0x00007fd8cc7d020b in g_main_context_iteration (context=0x7fd8b4000990, may_block=1) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3901
#6  0x00007fd8d1d85b2e in QEventDispatcherGlib::processEvents (this=0x7fd8b40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#7  0x00007fd8d1d3f87e in QEventLoop::processEvents (this=this@entry=0x7fd8ba012e40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:128
#8  0x00007fd8d1d3fc32 in QEventLoop::exec (this=this@entry=0x7fd8ba012e40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#9  0x00007fd8d1bccec3 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#10 0x00007fd8d1bccf4f in QThread::run (this=<optimized out>) at thread/qthread.cpp:570
#11 0x00007fd8d1bd06ca in QThreadPrivate::start (arg=0x285e530) at thread/qthread_unix.cpp:331
#12 0x00007fd8ce41f314 in start_thread (arg=0x7fd8ba013700) at pthread_create.c:333
#13 0x00007fd8d6d4d6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7fd8c7ddd780 (LWP 5320)):
[KCrash Handler]
#6  QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data (this=0x20) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:135
#7  qGetPtrHelper<QScopedPointer<QObjectData> > (p=...) at ../../include/QtCore/../../src/corelib/global/qglobal.h:983
#8  QScrollArea::d_func (this=0x18) at widgets/qscrollarea.h:83
#9  QScrollArea::widget (this=0x18) at widgets/qscrollarea.cpp:223
#10 0x00007fd8d563fa39 in KIO::RenameDialog::resizePanels() () from /usr/lib64/libKF5KIOWidgets.so.5
#11 0x00007fd8d1d624e5 in QMetaCallEvent::placeMetaCall (this=0x34cf440, object=0x7ffcf9756570) at kernel/qobject.cpp:486
#12 0x00007fd8d1d633a2 in QObject::event (this=this@entry=0x7ffcf9756570, e=e@entry=0x34cf440) at kernel/qobject.cpp:1239
#13 0x00007fd8d2701843 in QWidget::event (this=0x7ffcf9756570, event=0x34cf440) at kernel/qwidget.cpp:9105
#14 0x00007fd8d26c7bcd in QApplicationPrivate::notify_helper (this=this@entry=0x23a47b0, receiver=receiver@entry=0x7ffcf9756570, e=e@entry=0x34cf440) at kernel/qapplication.cpp:3716
#15 0x00007fd8d26cda87 in QApplication::notify (this=0x7ffcf9757640, receiver=0x7ffcf9756570, e=0x34cf440) at kernel/qapplication.cpp:3681
#16 0x00007fd8d1d40435 in QCoreApplication::notifyInternal (this=0x7ffcf9757640, receiver=receiver@entry=0x7ffcf9756570, event=event@entry=0x34cf440) at kernel/qcoreapplication.cpp:965
#17 0x00007fd8d1d431dd in QCoreApplication::sendEvent (event=0x34cf440, receiver=0x7ffcf9756570) at kernel/qcoreapplication.h:224
#18 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x23a3060) at kernel/qcoreapplication.cpp:1593
#19 0x00007fd8d1d4354c in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1451
#20 0x00007fd8d1d85cea in postEventSourceDispatch (s=s@entry=0x24ad960) at kernel/qeventdispatcher_glib.cpp:271
#21 0x00007fd8cc7cffb7 in g_main_dispatch (context=0x7fd8c00016f0) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3154
#22 g_main_context_dispatch (context=context@entry=0x7fd8c00016f0) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3769
#23 0x00007fd8cc7d0168 in g_main_context_iterate (context=context@entry=0x7fd8c00016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3840
#24 0x00007fd8cc7d020b in g_main_context_iteration (context=0x7fd8c00016f0, may_block=1) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3901
#25 0x00007fd8d1d85b2e in QEventDispatcherGlib::processEvents (this=0x24ad940, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#26 0x00007fd8c79b6568 in QPAEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:115
#27 0x00007fd8d1d3f87e in QEventLoop::processEvents (this=this@entry=0x7ffcf97564b0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:128
#28 0x00007fd8d1d3fc32 in QEventLoop::exec (this=this@entry=0x7ffcf97564b0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#29 0x00007fd8d286a86f in QDialog::exec (this=0x7ffcf9756570) at dialogs/qdialog.cpp:541
#30 0x00007fd8d564ac45 in KIO::JobUiDelegate::askFileRename(KJob*, QString const&, QUrl const&, QUrl const&, QFlags<KIO::RenameDialog_Option>, QString&, unsigned long long, unsigned long long, QDateTime const&, QDateTime const&, QDateTime const&, QDateTime const&) () from /usr/lib64/libKF5KIOWidgets.so.5
#31 0x00007fd8d4e3a9b5 in ?? () from /usr/lib64/libKF5KIOCore.so.5
#32 0x00007fd8d1d6521c in QMetaObject::activate (sender=sender@entry=0x23be8b0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7ffcf97568a0) at kernel/qobject.cpp:3713
#33 0x00007fd8d1d6564d in QMetaObject::activate (sender=sender@entry=0x23be8b0, m=m@entry=0x7fd8d32a30c0 <KJob::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7ffcf97568a0) at kernel/qobject.cpp:3578
#34 0x00007fd8d30583f4 in KJob::result (this=this@entry=0x23be8b0, _t1=_t1@entry=0x23be8b0) at /var/tmp/portage/kde-frameworks/kcoreaddons-5.20.0/work/kcoreaddons-5.20.0_build/src/lib/moc_kjob.cpp:555
#35 0x00007fd8d30589ec in KJob::finishJob (this=0x23be8b0, emitResult=emitResult@entry=true) at /var/tmp/portage/kde-frameworks/kcoreaddons-5.20.0/work/kcoreaddons-5.20.0/src/lib/jobs/kjob.cpp:109
#36 0x00007fd8d3058a54 in KJob::emitResult (this=<optimized out>) at /var/tmp/portage/kde-frameworks/kcoreaddons-5.20.0/work/kcoreaddons-5.20.0/src/lib/jobs/kjob.cpp:293
#37 0x00007fd8d4e772c2 in KIO::SimpleJob::slotFinished() () from /usr/lib64/libKF5KIOCore.so.5
#38 0x00007fd8d4e798ee in KIO::StatJob::slotFinished() () from /usr/lib64/libKF5KIOCore.so.5
#39 0x00007fd8d4e79229 in ?? () from /usr/lib64/libKF5KIOCore.so.5
#40 0x00007fd8d1d6521c in QMetaObject::activate (sender=sender@entry=0x3b76d90, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x0) at kernel/qobject.cpp:3713
#41 0x00007fd8d1d6564d in QMetaObject::activate (sender=0x3b76d90, m=<optimized out>, local_signal_index=4, argv=0x0) at kernel/qobject.cpp:3578
#42 0x00007fd8d4e5b3f1 in KIO::SlaveInterface::dispatch(int, QByteArray const&) () from /usr/lib64/libKF5KIOCore.so.5
#43 0x00007fd8d4e58ad8 in KIO::SlaveInterface::dispatch() () from /usr/lib64/libKF5KIOCore.so.5
#44 0x00007fd8d4e5cefe in KIO::Slave::gotInput() () from /usr/lib64/libKF5KIOCore.so.5
#45 0x00007fd8d4ed7685 in ?? () from /usr/lib64/libKF5KIOCore.so.5
#46 0x00007fd8d1d6521c in QMetaObject::activate (sender=sender@entry=0x337bc30, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3713
#47 0x00007fd8d1d6564d in QMetaObject::activate (sender=0x337bc30, m=<optimized out>, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3578
#48 0x00007fd8d4e0df3c in ?? () from /usr/lib64/libKF5KIOCore.so.5
#49 0x00007fd8d1d624e5 in QMetaCallEvent::placeMetaCall (this=0x3c6fff0, object=0x337bc30) at kernel/qobject.cpp:486
#50 0x00007fd8d1d633a2 in QObject::event (this=0x337bc30, e=<optimized out>) at kernel/qobject.cpp:1239
#51 0x00007fd8d26c7bcd in QApplicationPrivate::notify_helper (this=this@entry=0x23a47b0, receiver=receiver@entry=0x337bc30, e=e@entry=0x3c6fff0) at kernel/qapplication.cpp:3716
#52 0x00007fd8d26cbeda in QApplication::notify (this=0x7ffcf9757640, receiver=0x337bc30, e=0x3c6fff0) at kernel/qapplication.cpp:3160
#53 0x00007fd8d1d40435 in QCoreApplication::notifyInternal (this=0x7ffcf9757640, receiver=receiver@entry=0x337bc30, event=event@entry=0x3c6fff0) at kernel/qcoreapplication.cpp:965
#54 0x00007fd8d1d431dd in QCoreApplication::sendEvent (event=0x3c6fff0, receiver=0x337bc30) at kernel/qcoreapplication.h:224
#55 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x23a3060) at kernel/qcoreapplication.cpp:1593
#56 0x00007fd8d1d4354c in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1451
#57 0x00007fd8d1d85cea in postEventSourceDispatch (s=s@entry=0x24ad960) at kernel/qeventdispatcher_glib.cpp:271
#58 0x00007fd8cc7cffb7 in g_main_dispatch (context=0x7fd8c00016f0) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3154
#59 g_main_context_dispatch (context=context@entry=0x7fd8c00016f0) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3769
#60 0x00007fd8cc7d0168 in g_main_context_iterate (context=context@entry=0x7fd8c00016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3840
#61 0x00007fd8cc7d020b in g_main_context_iteration (context=0x7fd8c00016f0, may_block=1) at /var/tmp/portage/dev-libs/glib-2.46.2-r2/work/glib-2.46.2/glib/gmain.c:3901
#62 0x00007fd8d1d85b2e in QEventDispatcherGlib::processEvents (this=0x24ad940, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#63 0x00007fd8c79b6568 in QPAEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qeventdispatcher_glib.cpp:115
#64 0x00007fd8d1d3f87e in QEventLoop::processEvents (this=this@entry=0x7ffcf9757530, flags=..., flags@entry=...) at kernel/qeventloop.cpp:128
#65 0x00007fd8d1d3fc32 in QEventLoop::exec (this=this@entry=0x7ffcf9757530, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#66 0x00007fd8d1d45e34 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1229
#67 0x00007fd8d224f0aa in QGuiApplication::exec () at kernel/qguiapplication.cpp:1527
#68 0x00007fd8d26c3c37 in QApplication::exec () at kernel/qapplication.cpp:2976
#69 0x00007fd8d705acd1 in kdemain (argc=1, argv=<optimized out>) at /var/tmp/portage/kde-apps/dolphin-15.12.2/work/dolphin-15.12.2/src/main.cpp:150
#70 0x0000000000400894 in main (argc=<optimized out>, argv=<optimized out>) at /var/tmp/portage/kde-apps/dolphin-15.12.2/work/dolphin-15.12.2_build/src/dolphin_dummy.cpp:3

Reported using DrKonqi
Comment 1 Emmanuel Pescosta 2016-03-13 18:25:27 UTC
*** Bug 360479 has been marked as a duplicate of this bug. ***
Comment 2 Emmanuel Pescosta 2016-03-13 18:26:09 UTC
*** Bug 359520 has been marked as a duplicate of this bug. ***
Comment 3 Emmanuel Pescosta 2016-03-13 18:39:40 UTC
I assume that this crash was introduced by this change [1].

[1] https://github.com/KDE/kio/commit/83578134b3ddb090248e6db1a699d9bdf7428fe0#diff-d5085d0df7ae867dd4049820c0ef2449R388
Comment 4 Andreas Sturmlechner 2016-03-13 18:50:50 UTC
Created attachment 97873 [details]
dolphin kcrash with kio debug symbols

Added new crash log with more debug symbols.
Comment 5 cyril.baletaud 2016-03-15 10:25:58 UTC
Same here on gentoo, with kde-plasma-5.95.0
Comment 6 Emmanuel Pescosta 2016-03-17 09:38:21 UTC
Possible fix: https://git.reviewboard.kde.org/r/127410/
Comment 7 cyril.baletaud 2016-03-17 12:35:02 UTC
(In reply to Emmanuel Pescosta from comment #6)
> Possible fix: https://git.reviewboard.kde.org/r/127410/

Nice, works for me.
Many thanks Emmanuel
Comment 8 Emmanuel Pescosta 2016-03-19 11:23:29 UTC
Git commit bf37e9aa27a2321f4a6ce7188a0901fabd47c962 by Emmanuel Pescosta.
Committed on 19/03/2016 at 11:14.
Pushed by emmanuelp into branch 'master'.

Fix crash in rename dialog

ResizePanels must only be called in case of overwrite, all other cases violate
the preconditions.
REVIEW: 127410

M  +10   -1    src/widgets/renamedialog.cpp

http://commits.kde.org/kio/bf37e9aa27a2321f4a6ce7188a0901fabd47c962
Comment 9 chenghaomanzhouli 2016-03-21 11:49:53 UTC
Dolphin won't crash when copying a same-name file from another folder. But it still will crash when copying and pasting a file in one folder. So I'm afraid it's still not fixed.
Comment 10 David Faure 2016-04-17 21:28:06 UTC
*** Bug 361599 has been marked as a duplicate of this bug. ***
Comment 11 Emmanuel Pescosta 2016-06-07 20:57:08 UTC
*** Bug 360966 has been marked as a duplicate of this bug. ***
Comment 12 Emmanuel Pescosta 2016-06-07 20:57:40 UTC
*** Bug 360809 has been marked as a duplicate of this bug. ***
Comment 13 Emmanuel Pescosta 2016-06-07 21:00:36 UTC
*** Bug 361107 has been marked as a duplicate of this bug. ***
Comment 14 jc_yeahright 2016-09-11 02:16:30 UTC
Crash still occurs when pasting or renaming file.
Dolphin Version 4.14.2
OS: Linux (x86_64) release 3.2.0-109-generic
Compiler: x86_64-linux-gnu-gcc
Comment 15 RJVB 2016-09-11 08:04:52 UTC
That's an old KDE4 version!

I can confirm that Dolphin 16.08.0 (with FWs 5.24.0) doesn't crash when doing a copy/paste of a file without changing directories. It pops up a warning that offers to give the copy a new name.