Dolphin crashes at startup when user-places.xbel contains a duplicated entry. (gdb) bt #0 KStandardItem::setDataValue (this=this@entry=0x555555e6d030, role=..., value=...) at /build/dolphin/src/dolphin-18.04.0/src/kitemviews/kstandarditem.cpp:104 #1 0x00007ffff74b2512 in KStandardItem::setIcon (this=0x555555e6d030, icon=...) at /build/dolphin/src/dolphin-18.04.0/src/kitemviews/kstandarditem.cpp:74 #2 0x00007ffff7b677d1 in PlacesItem::<lambda(bool)>::operator() (isTrashEmpty=<optimized out>, __closure=<optimized out>) at /build/dolphin/src/dolphin-18.04.0/src/panels/places/placesitem.cpp:65 #3 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, PlacesItem::setUrl(const QUrl&)::<lambda(bool)> >::call ( arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:130 #4 QtPrivate::Functor<PlacesItem::setUrl(const QUrl&)::<lambda(bool)>, 1>::call<QtPrivate::List<bool>, void> (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:240 #5 QtPrivate::QFunctorSlotObject<PlacesItem::setUrl(const QUrl&)::<lambda(bool)>, 1, QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:423 #6 0x00007ffff19c883f in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #7 0x00007ffff7b900a0 in Trash::emptinessChanged (this=<optimized out>, _t1=<optimized out>, _t1@entry=false) at /build/dolphin/src/build/src/dolphinstatic_autogen/ACC2Q2AKJ6/moc_dolphintrash.cpp:127 #8 0x00007ffff7b5c84a in Trash::<lambda()>::operator() (__closure=0x555555cadbf0) at /build/dolphin/src/dolphin-18.04.0/src/trash/dolphintrash.cpp:41 #9 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Trash::Trash()::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:130 #10 QtPrivate::Functor<Trash::Trash()::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:240 #11 QtPrivate::QFunctorSlotObject<Trash::Trash()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x555555cadbe0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:423 #12 0x00007ffff19c883f in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #13 0x00007ffff5e025e5 in KCoreDirListerCache::slotResult (this=0x7ffff6070400 <(anonymous namespace)::Q_QGS_kDirListerCache::innerFunction()::holder>, j=<optimized out>) at /build/kio/src/kio-5.45.0/src/core/kcoredirlister.cpp:1358 #14 0x00007ffff5e06774 in KCoreDirListerCache::qt_static_metacall ( _o=0x7ffff6070400 <(anonymous namespace)::Q_QGS_kDirListerCache::innerFunction()::holder>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /build/kio/src/build/src/core/KF5KIOCore_autogen/include/moc_kcoredirlister_p.cpp:136 #15 0x00007ffff19c8716 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #16 0x00007ffff33a669d in KJob::result(KJob*, KJob::QPrivateSignal) () from /usr/lib/libKF5CoreAddons.so.5 ---Type <return> to continue, or q <return> to quit--- #17 0x00007ffff33a71e2 in KJob::finishJob(bool) () from /usr/lib/libKF5CoreAddons.so.5 #18 0x00007ffff5db5a81 in KIO::SimpleJob::slotFinished (this=this@entry=0x555555cadcf0) at /build/kio/src/kio-5.45.0/src/core/simplejob.cpp:232 #19 0x00007ffff5daa11e in KIO::ListJob::slotFinished (this=0x555555cadcf0) at /build/kio/src/kio-5.45.0/src/core/listjob.cpp:247 #20 0x00007ffff19c883f in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #21 0x00007ffff5d8eab6 in KIO::SlaveInterface::dispatch (this=0x555555eee810, _cmd=<optimized out>, rawdata=...) at /build/kio/src/kio-5.45.0/src/core/slaveinterface.cpp:160 #22 0x00007ffff5d8afd8 in KIO::SlaveInterface::dispatch (this=0x555555eee810) at /build/kio/src/kio-5.45.0/src/core/slaveinterface.cpp:89 #23 0x00007ffff5d90692 in KIO::Slave::gotInput (this=0x555555eee810) at /build/kio/src/kio-5.45.0/src/core/slave.cpp:406 #24 0x00007ffff19c8716 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #25 0x00007ffff5d323aa in KIO::Connection::readyRead (this=<optimized out>) at /build/kio/src/build/src/core/KF5KIOCore_autogen/include/moc_connection_p.cpp:143 #26 KIO::ConnectionPrivate::dequeue (this=0x555555cadac0) at /build/kio/src/kio-5.45.0/src/core/connection.cpp:46 #27 0x00007ffff19c92b2 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5 #28 0x00007ffff29d35ec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #29 0x00007ffff29dadc6 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5 #30 0x00007ffff19985c0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #31 0x00007ffff199b1de in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5 #32 0x00007ffff19f4c44 in ?? () from /usr/lib/libQt5Core.so.5 #33 0x00007fffea1e2368 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #34 0x00007fffea1e25b1 in ?? () from /usr/lib/libglib-2.0.so.0 #35 0x00007fffea1e263e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #36 0x00007ffff19f4231 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #37 0x00007fffe3373362 in ?? () from /usr/lib/libQt5XcbQpa.so.5 #38 0x00007ffff1996d1b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #39 0x00007ffff199ff68 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5 #40 0x00007ffff7b409d6 in kdemain (argc=<optimized out>, argv=<optimized out>) at /build/dolphin/src/dolphin-18.04.0/src/main.cpp:163 #41 0x00007ffff77679a7 in __libc_start_main () from /usr/lib/libc.so.6 #42 0x000055555555475a in _start ()
*** Bug 393529 has been marked as a duplicate of this bug. ***
Created attachment 112248 [details] Minimal user-places.xbel test case that makes dolphin crash
Hmm the first backtrace seems to be unrelated, this is the good one (gdb) bt #0 0x0000000a00000002 in ?? () #1 0x00007ffff19feada in QObjectPrivate::connectImpl (sender=sender@entry=0x555555eaadb0, signal_index=<optimized out>, receiver=receiver@entry=0x555555e0d930, slot=slot@entry=0x7fffffffda20, slotObj=slotObj@entry=0x555555be4270, type=<optimized out>, types=<optimized out>, senderMetaObject=<optimized out>) at kernel/qobject.cpp:4848 #2 0x00007ffff19fecbc in QObject::connectImpl (sender=sender@entry=0x555555eaadb0, signal=signal@entry=0x7fffffffda10, receiver=receiver@entry=0x555555e0d930, slot=slot@entry=0x7fffffffda20, slotObj=0x555555be4270, type=Qt::AutoConnection, types=0x0, senderMetaObject=0x7ffff7dd3860 <PlacesItemSignalHandler::staticMetaObject>) at kernel/qobject.cpp:4785 #3 0x00007ffff7b6d583 in QObject::connect<void (PlacesItemSignalHandler::*)(QString const&), void (PlacesItemModel::*)(QString const&)> (type=Qt::AutoConnection, slot= (void (PlacesItemModel::*)(PlacesItemModel * const, const QString &)) 0x7ffff7b8fa80 <PlacesItemModel::storageTearDownExternallyRequested(QString const&)>, receiver=0x555555e0d930, signal= (void (PlacesItemSignalHandler::*)(PlacesItemSignalHandler * const, const QString &)) 0x7ffff7b8fae0 <PlacesItemSignalHandler::tearDownExternallyRequested(QString const&)>, sender=0x555555eaadb0) at /usr/include/qt/QtCore/qobject.h:260 #4 PlacesItemModel::addItemFromSourceModel (this=this@entry=0x555555e0d930, index=...) at /build/dolphin/src/dolphin-18.04.0/src/panels/places/placesitemmodel.cpp:408 #5 0x00007ffff7b6d792 in PlacesItemModel::onSourceModelRowsInserted (this=0x555555e0d930, parent=..., first=<optimized out>, last=8) at /build/dolphin/src/dolphin-18.04.0/src/panels/places/placesitemmodel.cpp:525 #6 0x00007ffff19fa7af in QtPrivate::QSlotObjectBase::call (a=0x7fffffffdbd0, r=0x555555e0d930, this=0x555555e23e40) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:378 #7 QMetaObject::activate (sender=sender@entry=0x555555c53bc0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=10, argv=argv@entry=0x7fffffffdbd0) at kernel/qobject.cpp:3750 #8 0x00007ffff19fad89 in QMetaObject::activate (sender=sender@entry=0x555555c53bc0, m=m@entry=0x7ffff1e2bda0 <QAbstractItemModel::staticMetaObject>, local_signal_index=local_signal_index@entry=10, argv=argv@entry=0x7fffffffdbd0) at kernel/qobject.cpp:3629 #9 0x00007ffff1962eef in QAbstractItemModel::rowsInserted (this=this@entry=0x555555c53bc0, _t1=..., _t2=<optimized out>, _t3=<optimized out>, _t4=...) at .moc/moc_qabstractitemmodel.cpp:602 #10 0x00007ffff196a73d in QAbstractItemModel::endInsertRows (this=0x555555c53bc0) at itemmodels/qabstractitemmodel.cpp:2709 #11 0x00007ffff6f9927d in KFilePlacesModel::Private::_k_reloadBookmarks (this=this@entry=0x555555c13890) at /build/kio/src/kio-5.45.0/src/filewidgets/kfileplacesmodel.cpp:632 #12 0x00007ffff6f998a0 in KFilePlacesModel::Private::_k_initDeviceList (this=0x555555c13890) at /build/kio/src/kio-5.45.0/src/filewidgets/kfileplacesmodel.cpp:537 #13 0x00007ffff6f9af89 in KFilePlacesModel::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at /build/kio/src/build/src/filewidgets/KF5KIOFileWidgets_autogen/include/moc_kfileplacesmodel.cpp:118 #14 0x00007ffff19fb0d2 in QObject::event (this=0x555555c53bc0, e=<optimized out>) at kernel/qobject.cpp:1247 #15 0x00007ffff29d807c in QApplicationPrivate::notify_helper (this=this@entry=0x555555771650, ---Type <return> to continue, or q <return> to quit--- receiver=receiver@entry=0x555555c53bc0, e=e@entry=0x555555c93210) at kernel/qapplication.cpp:3732 #16 0x00007ffff29dfa56 in QApplication::notify (this=0x7fffffffe440, receiver=0x555555c53bc0, e=0x555555c93210) at kernel/qapplication.cpp:3491 #17 0x00007ffff19c9d60 in QCoreApplication::notifyInternal2 (receiver=0x555555c53bc0, event=event@entry=0x555555c93210) at kernel/qcoreapplication.cpp:1050 #18 0x00007ffff19cc9c6 in QCoreApplication::sendEvent (event=0x555555c93210, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234 #19 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x55555576f190) at kernel/qcoreapplication.cpp:1740 #20 0x00007ffff19ccf5a in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1594 #21 0x00007ffff1a26cc4 in postEventSourceDispatch (s=0x5555557d8f50) at kernel/qeventdispatcher_glib.cpp:276 #22 0x00007fffe8423368 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #23 0x00007fffe84235b1 in ?? () from /usr/lib/libglib-2.0.so.0 #24 0x00007fffe842363e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #25 0x00007ffff1a262b1 in QEventDispatcherGlib::processEvents (this=0x5555557ebe70, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #26 0x00007fffe3365c62 in QPAEventDispatcherGlib::processEvents (this=0x5555557ebe70, flags=...) at qeventdispatcher_glib.cpp:69 #27 0x00007ffff19c839b in QEventLoop::exec (this=this@entry=0x7fffffffe340, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #28 0x00007ffff19d1798 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1338 #29 0x00007ffff21beede in QGuiApplication::exec () at kernel/qguiapplication.cpp:1687 #30 0x00007ffff29d7fd6 in QApplication::exec () at kernel/qapplication.cpp:2917 #31 0x00007ffff7b409d6 in kdemain (argc=<optimized out>, argv=<optimized out>) at /build/dolphin/src/dolphin-18.04.0/src/main.cpp:163 #32 0x00007ffff77679a7 in __libc_start_main () from /usr/lib/libc.so.6 #33 0x000055555555475a in _start ()
https://phabricator.kde.org/D12558
Confirmed & Antonio is working on a fix. (See the Phabricator link from comment 4)
*** Bug 393435 has been marked as a duplicate of this bug. ***
Git commit 0c05b992c0dbfb2b0651344413310d0b860c2fa7 by Antonio Rojas. Committed on 29/04/2018 at 17:39. Pushed by arojas into branch 'Applications/18.04'. Don't filter out duplicated entries from places panel This can lead to crashes and is inconsistent with the KIO file picker dialog, which shows duplicated entries. Differential Revision: https://phabricator.kde.org/D12558 M +1 -4 src/panels/places/placesitemmodel.cpp https://commits.kde.org/dolphin/0c05b992c0dbfb2b0651344413310d0b860c2fa7
*** Bug 393652 has been marked as a duplicate of this bug. ***
*** Bug 393500 has been marked as a duplicate of this bug. ***
*** Bug 393784 has been marked as a duplicate of this bug. ***
*** Bug 393136 has been marked as a duplicate of this bug. ***
*** Bug 393128 has been marked as a duplicate of this bug. ***
*** Bug 394507 has been marked as a duplicate of this bug. ***