Summary: | Dolphin crash when renaming a directory | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-kio | Reporter: | Eridani Rodríguez <eridanired123> |
Component: | general | Assignee: | David Faure <faure> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | ascaris, elvis.angelaccio, eridanired123, kde, kdelibs-bugs, kiwimisc, masoudkh62, mothlight, nate, xerusx |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.52.0 | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=401916 | ||
Latest Commit: | https://commits.kde.org/kio/211c3a680ea762ec3a674f2f29de5bbf7ae36d8e | Version Fixed In: | 5.54 |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi |
Description
Eridani Rodríguez
2018-11-29 23:05:51 UTC
Created attachment 116576 [details]
New crash information added by DrKonqi
dolphin (18.08.3) using Qt 5.11.2
- What I was doing when the application crashed:
Was renaming more folders, adding underscore at the end of the folder like this: MyFolder_
-- Backtrace (Reduced):
#6 std::__atomic_base<int>::operator++ (this=0x100000000) at /usr/include/c++/7/bits/atomic_base.h:296
#7 QAtomicOps<int>::ref<int> (_q_value=...) at ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:265
[...]
#9 QUrl::QUrl (this=0x7ffe5d27bdb8, other=...) at io/qurl.cpp:1876
#10 0x00007ff5be0f8ee5 in KFileItem::url (this=this@entry=0x7ffe5d27bda8) at ./src/core/kfileitem.cpp:1387
#11 0x00007ff5be1a9473 in KCoreDirListerCache::renameDir (this=this@entry=0x7ff5be417280 <(anonymous namespace)::Q_QGS_kDirListerCache::innerFunction()::holder>, oldUrl=..., newUrl=...) at ./src/core/kcoredirlister.cpp:1579
If you manage to reproduce this crash, please try to get a valgrind log as described here: https://community.kde.org/Dolphin/FAQ/Crashes Created attachment 116684 [details]
New crash information added by DrKonqi
dolphin (18.08.3) using Qt 5.11.2
- What I was doing when the application crashed:
Renaming .wine inside my ~ directory. Dolphin crashed as soon as I hit enter.
-- Backtrace (Reduced):
#6 std::__atomic_base<int>::operator++ (this=0x100000000) at /usr/include/c++/7/bits/atomic_base.h:296
#7 QAtomicOps<int>::ref<int> (_q_value=...) at ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:265
[...]
#9 QUrl::QUrl (this=0x7ffda75bf568, other=...) at io/qurl.cpp:1876
#10 0x00007f24654b3ee5 in KFileItem::url (this=this@entry=0x7ffda75bf558) at ./src/core/kfileitem.cpp:1387
#11 0x00007f2465564473 in KCoreDirListerCache::renameDir (this=this@entry=0x7f24657d2280 <(anonymous namespace)::Q_QGS_kDirListerCache::innerFunction()::holder>, oldUrl=..., newUrl=...) at ./src/core/kcoredirlister.cpp:1579
Also getting this frequently, but not consistently. The crash happens after the rename is executed. *** Bug 402059 has been marked as a duplicate of this bug. *** I was using "Sort by > Type" and "Details" view mode with expandable folders enabled, if this is relevant. Yes, I also experienced this multiple times, as seen in https://bugs.kde.org/show_bug.cgi?id=402059 The renaming operation is carried out, but it crashes immediately afterwards. For me it actually happened multiple times in a row as I renamed the same folder multiple times. Seems the crash is in kio. Here's a valgrind log: Invalid read of size 8 at 0x56B5628: QSharedDataPointer<KFileItemPrivate>::QSharedDataPointer(QSharedDataPointer<KFileItemPrivate> const&) (qshareddata.h:92) by 0x56AF5D6: KFileItem::KFileItem(KFileItem const&) (kfileitem.h:47) by 0x575FDFB: KCoreDirListerCache::renameDir(QUrl const&, QUrl const&) (kcoredirlister.cpp:1576) by 0x575B041: KCoreDirListerCache::slotFileRenamed(QString const&, QString const&, QString const&) (kcoredirlister.cpp:969) by 0x577BF39: 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(void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&), KCoreDirListerCache*, void**) (qobjectdefs_impl.h:152) by 0x577A630: void QtPrivate::FunctionPointer<void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&)>::call<QtPrivate::List<QString const&, QString const&, QString const&>, void>(void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&), KCoreDirListerCache*, void**) (qobjectdefs_impl.h:185) by 0x5777250: QtPrivate::QSlotObject<void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&), QtPrivate::List<QString const&, QString const&, QString const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:414) by 0x75C93BF: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQt5Core.so.5.12.0) by 0x5798ED3: OrgKdeKDirNotifyInterface::FileRenamedWithLocalPath(QString const&, QString const&, QString const&) (moc_kdirnotify.cpp:224) by 0x579889D: OrgKdeKDirNotifyInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_kdirnotify.cpp:103) by 0x5798DAB: OrgKdeKDirNotifyInterface::qt_metacall(QMetaObject::Call, int, void**) (moc_kdirnotify.cpp:203) by 0x72B19EE: ??? (in /usr/lib/libQt5DBus.so.5.12.0) Address 0x11350758 is 72 bytes inside a block of size 128 free'd at 0x4839D7B: realloc (vg_replace_malloc.c:826) by 0x7439992: QListData::realloc_grow(int) (in /usr/lib/libQt5Core.so.5.12.0) by 0x7439A3B: QListData::append(int) (in /usr/lib/libQt5Core.so.5.12.0) by 0x576BE43: QList<KFileItem>::insert(QList<KFileItem>::iterator, KFileItem const&) (qlist.h:521) by 0x576B1EC: KCoreDirListerCache::DirItem::insert(KFileItem const&) (kcoredirlister_p.h:422) by 0x576AC8A: KCoreDirListerCache::reinsert(KFileItem const&, QUrl const&) (kcoredirlister_p.h:310) by 0x5760053: KCoreDirListerCache::renameDir(QUrl const&, QUrl const&) (kcoredirlister.cpp:1584) by 0x575B041: KCoreDirListerCache::slotFileRenamed(QString const&, QString const&, QString const&) (kcoredirlister.cpp:969) by 0x577BF39: 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(void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&), KCoreDirListerCache*, void**) (qobjectdefs_impl.h:152) by 0x577A630: void QtPrivate::FunctionPointer<void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&)>::call<QtPrivate::List<QString const&, QString const&, QString const&>, void>(void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&), KCoreDirListerCache*, void**) (qobjectdefs_impl.h:185) by 0x5777250: QtPrivate::QSlotObject<void (KCoreDirListerCache::*)(QString const&, QString const&, QString const&), QtPrivate::List<QString const&, QString const&, QString const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:414) by 0x75C93BF: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQt5Core.so.5.12.0) Block was alloc'd at at 0x4839D7B: realloc (vg_replace_malloc.c:826) by 0x7439992: QListData::realloc_grow(int) (in /usr/lib/libQt5Core.so.5.12.0) by 0x7439C1A: QListData::insert(int) (in /usr/lib/libQt5Core.so.5.12.0) by 0x576BE43: QList<KFileItem>::insert(QList<KFileItem>::iterator, KFileItem const&) (qlist.h:521) by 0x576B1EC: KCoreDirListerCache::DirItem::insert(KFileItem const&) (kcoredirlister_p.h:422) by 0x575D78C: KCoreDirListerCache::slotEntries(KIO::Job*, QList<KIO::UDSEntry> const&) (kcoredirlister.cpp:1252) by 0x577C268: QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<KIO::Job*, QList<KIO::UDSEntry> const&>, void, void (KCoreDirListerCache::*)(KIO::Job*, QList<KIO::UDSEntry> const&)>::call(void (KCoreDirListerCache::*)(KIO::Job*, QList<KIO::UDSEntry> const&), KCoreDirListerCache*, void**) (qobjectdefs_impl.h:152) by 0x577AAC8: void QtPrivate::FunctionPointer<void (KCoreDirListerCache::*)(KIO::Job*, QList<KIO::UDSEntry> const&)>::call<QtPrivate::List<KIO::Job*, QList<KIO::UDSEntry> const&>, void>(void (KCoreDirListerCache::*)(KIO::Job*, QList<KIO::UDSEntry> const&), KCoreDirListerCache*, void**) (qobjectdefs_impl.h:185) by 0x5777D4A: QtPrivate::QSlotObject<void (KCoreDirListerCache::*)(KIO::Job*, QList<KIO::UDSEntry> const&), QtPrivate::List<KIO::Job*, QList<KIO::UDSEntry> const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:414) by 0x75C93BF: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQt5Core.so.5.12.0) by 0x5703C23: KIO::ListJob::entries(KIO::Job*, QList<KIO::UDSEntry> const&) (moc_listjob.cpp:236) by 0x57027CE: KIO::ListJobPrivate::slotListEntries(QList<KIO::UDSEntry> const&) (listjob.cpp:154) (In reply to Christoph Feck from comment #4) > Also getting this frequently, but not consistently. The crash happens after > the rename is executed. Does it help to revert 20b89972b643b5fc049055b1c6cc92c598c6dcb6 in kio? Git commit 211c3a680ea762ec3a674f2f29de5bbf7ae36d8e by Jaime Torres Amate. Committed on 24/12/2018 at 08:34. Pushed by jtamate into branch 'master'. Change the path for every item of the subdirectories in a directory rename Summary: As only the items in subdirectories of the renamed one are modified, if all the items are changed the same part of the path with the same new value, the order is preserved, therefore modify the path directly in the list. Test Plan: Can't reproduce the bug. Passes kdirmodeltest and kdirlistertest (and many others). Reviewers: dfaure, #frameworks Reviewed By: dfaure Subscribers: elvisangelaccio, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D17619 M +55 -0 autotests/kdirlistertest.cpp M +1 -0 autotests/kdirlistertest.h M +4 -3 src/core/kcoredirlister.cpp https://commits.kde.org/kio/211c3a680ea762ec3a674f2f29de5bbf7ae36d8e Created attachment 117125 [details]
New crash information added by DrKonqi
dolphin (18.08.3) using Qt 5.11.1
- What I was doing when the application crashed:
In dolphin:
Create new folder (maybe call it X)
Paste a few folders into X
Ctrl-x the X folder
Do not paste (ctrl-v)
F2 to rename
Type in new folder name (Y)
Dolphin crashes.
-- Backtrace (Reduced):
#8 0x00007f4944c63aef in KFileItem::KFileItem(KFileItem const&) () at /lib64/libKF5KIOCore.so.5
#9 0x00007f4944d285d5 in KCoreDirListerCache::renameDir(QUrl const&, QUrl const&) () at /lib64/libKF5KIOCore.so.5
#10 0x00007f4944d2a53e in KCoreDirListerCache::slotFileRenamed(QString const&, QString const&, QString const&) () at /lib64/libKF5KIOCore.so.5
[...]
#12 0x00007f4944d4b7e3 in OrgKdeKDirNotifyInterface::FileRenamedWithLocalPath(QString const&, QString const&, QString const&) () at /lib64/libKF5KIOCore.so.5
#13 0x00007f4944d4c983 in OrgKdeKDirNotifyInterface::qt_metacall(QMetaObject::Call, int, void**) () at /lib64/libKF5KIOCore.so.5
*** Bug 402821 has been marked as a duplicate of this bug. *** *** Bug 403418 has been marked as a duplicate of this bug. *** Created attachment 165957 [details]
New crash information added by DrKonqi
dolphin (23.08.5) using Qt 5.15.12
Dolphin crashed. When that path was open in Dolphin, I renamed that path in the terminal
-- Backtrace (Reduced):
#4 0x000072adf915ebf2 in ??? () at /usr/lib/libKF5KIOCore.so.5
#5 0x000072adf91533d5 in ??? () at /usr/lib/libKF5KIOCore.so.5
#6 0x000072adf91561eb in ??? () at /usr/lib/libKF5KIOCore.so.5
#7 0x000072adf74c8e27 in ??? () at /usr/lib/libQt5Core.so.5
#8 0x000072adf893e34a in KDirWatch::deleted(QString const&) () at /usr/lib/libKF5CoreAddons.so.5
|