D10742: get rid of the raw KFileItem pointers in KCoreDirListerCache

Elvis Angelaccio noreply at phabricator.kde.org
Sat Dec 15 15:52:46 GMT 2018


elvisangelaccio added a comment.


  In D10742#377356 <https://phabricator.kde.org/D10742#377356>, @jtamate wrote:
  
  > Let's see if this assert/crash can be avoided without reverting all the patch. Any help is welcome.
  
  
  Does this valgrind log help?
  
    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)

REPOSITORY
  R241 KIO

REVISION DETAIL
  https://phabricator.kde.org/D10742

To: jtamate, #frameworks, dfaure
Cc: elvisangelaccio, bruns, kde-frameworks-devel, mwolff, markg, michaelh, ngraham
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20181215/95c0b9b3/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list