Summary: | crash when you drag file from trash to trash | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-kio | Reporter: | i9i7 <i9i7soft> |
Component: | general | Assignee: | David Hallas <david> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | bugseforuns, contact, DAEderp1917, dark.shadow4, david, elvis.angelaccio, kdelibs-bugs, lmvh12, thomas2967, yongzhen.ren.0423 |
Priority: | NOR | ||
Version: | 5.32.0 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/kio/f56af9e2ea0aa61d3faa9c57aa477016b1223f96 | Version Fixed In: | 5.56.0 |
Sentry Crash Report: | |||
Attachments: |
Additional stack trace
New crash information added by DrKonqi |
Description
i9i7
2017-03-25 04:53:26 UTC
Thanks for reporing. Stacktrace: Thread 1 (Thread 0x7f0a952d7800 (LWP 3260)): [KCrash Handler] #6 0x00007f0a92eb0a86 in std::__atomic_base<int>::operator++ (this=0x21) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.3.1/../../../../include/c++/6.3.1/bits/atomic_base.h:296 #7 0x00007f0a92eb0a55 in QAtomicOps<int>::ref<int> (_q_value=...) at /usr/include/qt/QtCore/qatomic_cxx11.h:265 #8 0x00007f0a92eb0a35 in QBasicAtomicInteger<int>::ref (this=0x21) at /usr/include/qt/QtCore/qbasicatomic.h:113 #9 0x00007f0a92f6509b in QSharedDataPointer<KIO::UDSEntryPrivate>::QSharedDataPointer (this=0x7ffeca1eb0a0, o=...) at /usr/include/qt/QtCore/qshareddata.h:92 #10 0x00007f0a92f6439d in KIO::UDSEntry::UDSEntry (this=0x7ffeca1eb0a0, other=...) at /home/elvis/dev/kde/src/kio/src/core/udsentry.cpp:76 #11 0x00007f0a92ede0db in KFileItem::entry (this=0x19bc860) at /home/elvis/dev/kde/src/kio/src/core/kfileitem.cpp:1486 #12 0x00007f0a92f75f63 in KCoreDirListerCache::slotFileRenamed (this=0x7f0a9322c580 <(anonymous namespace)::Q_QGS_kDirListerCache::innerFunction()::holder>, _src=..., _dst=..., dstPath=...) at /home/elvis/dev/kde/src/kio/src/core/kcoredirlister.cpp:989 #13 0x00007f0a92f92a0d in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<QString const&, QString const&, QString const&>, void, void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&)>::call (f=(void (KCoreDirListerCache::*)(KCoreDirListerCache * const, const QString &, const QString &, const QString &)) 0x7f0a92f75bf0 <KCoreDirListerCache::slotFileRenamed(QString const&, QString const&, QString const&)>, o=0x7f0a9322c580 <(anonymous namespace)::Q_QGS_kDirListerCache::innerFunction()::holder>, arg=0x7ffeca1eb430) at /usr/include/qt/QtCore/qobjectdefs_impl.h:143 #14 0x00007f0a92f92950 in QtPrivate::FunctionPointer<void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&)>::call<QtPrivate::List<QString const&, QString const&, QString const&>, void> (f=(void (KCoreDirListerCache::*)(KCoreDirListerCache * const, const QString &, const QString &, const QString &)) 0x7f0a92f75bf0 <KCoreDirListerCache::slotFileRenamed(QString const&, QString const&, QString const&)>, o=0x7f0a9322c580 <(anonymous namespace)::Q_QGS_kDirListerCache::innerFunction()::holder>, arg=0x7ffeca1eb430) at /usr/include/qt/QtCore/qobjectdefs_impl.h:162 #15 0x00007f0a92f92846 in QtPrivate::QSlotObject<void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&), QtPrivate::List<QString const&, QString const&, QString const&>, void>::impl (which=1, this_=0x1719f10, r=0x7f0a9322c580 <(anonymous namespace)::Q_QGS_kDirListerCache::innerFunction()::holder>, a=0x7ffeca1eb430, ret=0x0) at /usr/include/qt/QtCore/qobject_impl.h:120 #16 0x00007f0a8d75b0be in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #17 0x00007f0a92fb607e in OrgKdeKDirNotifyInterface::FileRenamedWithLocalPath (this=0x1716ef0, _t1=..., _t2=..., _t3=...) at src/core/KF5KIOCore_automoc.dir/moc_kdirnotify_FWCYUVFJ2BRI4B.cpp:221 #18 0x00007f0a92fb5c79 in OrgKdeKDirNotifyInterface::qt_static_metacall (_o=0x1716ef0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffeca1eb610) at src/core/KF5KIOCore_automoc.dir/moc_kdirnotify_FWCYUVFJ2BRI4B.cpp:103 #19 0x00007f0a92fb63e5 in OrgKdeKDirNotifyInterface::qt_metacall (this=0x1716ef0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffeca1eb610) at src/core/KF5KIOCore_automoc.dir/moc_kdirnotify_FWCYUVFJ2BRI4B.cpp:200 #20 0x00007f0a8dba5430 in ?? () from /usr/lib/libQt5DBus.so.5 #21 0x00007f0a8d75bba9 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5 #22 0x00007f0a8e8de34c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #23 0x00007f0a8e8e5b61 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #24 0x00007f0a8d72f440 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #25 0x00007f0a8d731bcd in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5 #26 0x00007f0a8d783c43 in ?? () from /usr/lib/libQt5Core.so.5 #27 0x00007f0a869c65a7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #28 0x00007f0a869c6810 in ?? () from /usr/lib/libglib-2.0.so.0 #29 0x00007f0a869c68bc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #30 0x00007f0a8d78404f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #31 0x00007f0a8d72d89a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #32 0x00007f0a8d735de4 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5 #33 0x00007f0a94f1146b in kdemain (argc=1, argv=0x7ffeca1ec318) at /home/elvis/dev/kde/src/dolphin/src/main.cpp:163 #34 0x0000000000400ab2 in main (argc=1, argv=0x7ffeca1ec318) at src/dolphin_dummy.cpp:3 *** Bug 379343 has been marked as a duplicate of this bug. *** *** Bug 379982 has been marked as a duplicate of this bug. *** *** Bug 386293 has been marked as a duplicate of this bug. *** *** Bug 387432 has been marked as a duplicate of this bug. *** Created attachment 111702 [details]
Additional stack trace
I can confirm this bug
Created attachment 115749 [details]
New crash information added by DrKonqi
dolphin (18.08.2) using Qt 5.11.2
- What I was doing when the application crashed:
- Unusual behavior I noticed:
If I mark a file in the trash to delete, the whole system hangs and after a few minutes it works again or Dolphin crashes.
-- Backtrace (Reduced):
#6 std::__atomic_base<int>::operator++ (this=0x21) at /usr/include/c++/7/bits/atomic_base.h:296
#7 QAtomicOps<int>::ref<int> (_q_value=...) at /usr/include/qt5/QtCore/qatomic_cxx11.h:265
[...]
#9 QSharedDataPointer<KIO::UDSEntryPrivate>::QSharedDataPointer (o=..., this=0x7ffc304cc5a8) at /usr/include/qt5/QtCore/qshareddata.h:92
#10 KIO::UDSEntry::UDSEntry (this=0x7ffc304cc5a8) at /usr/src/debug/kio-5.51.0-lp150.232.1.x86_64/src/core/udsentry.h:76
#11 0x00007fe9da0c4105 in KFileItem::entry (this=this@entry=0x55a8738f6320) at /usr/src/debug/kio-5.51.0-lp150.232.1.x86_64/src/core/kfileitem.cpp:1516
I have just reproduced this with a debug build of KIO and I get the following assert failure: ASSERT: "it != dirItem->lstItems.end()" in file /home/dha/workspace/kde/kio/src/core/kcoredirlister_p.h, line 308 I will look into the root cause of this and post and update. Pushed the following fix: https://phabricator.kde.org/D19168 Please test it out :) Git commit f56af9e2ea0aa61d3faa9c57aa477016b1223f96 by David Hallas. Committed on 25/02/2019 at 10:07. Pushed by hallas into branch 'master'. Fix crash in Dolphin when dropping trashed file in trash Summary: Fix crash in Dolphin when dropping trashed file in trash. The actual crash happens because of an assertion failure in kcoredirlister_p.h:308 and this is triggered from kcoredirlister.cpp:995. What actually happens is that the dropjob determines that it should perform a move action which ends up being a rename operation for kio_trash. But it ends up moving the file to itself and this triggers the above crash. The solution is to error out in the dropjob with a KIO::ERR_DROP_ON_ITSELF error so that the user can see that it doesn't make sense to drop a file from the trash inside the trash again. Test Plan: Put a file in trash Drag and drop the file to the trash Reviewers: #frameworks, elvisangelaccio, ngraham, dfaure Reviewed By: dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D19168 M +25 -0 autotests/dropjobtest.cpp M +4 -0 src/widgets/dropjob.cpp https://commits.kde.org/kio/f56af9e2ea0aa61d3faa9c57aa477016b1223f96 This should be fixed in Framework 5.56.0 *** Bug 424052 has been marked as a duplicate of this bug. *** |