Summary: | File dialog crashes when the file in focus is deleted | ||
---|---|---|---|
Product: | [Unmaintained] kio | Reporter: | András Manţia <amantia> |
Component: | general | Assignee: | David Faure <faure> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | ereslibre, finex |
Priority: | NOR | ||
Version: | SVN | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
András Manţia
2008-10-24 18:38:23 UTC
Changed severity to "crash". I hope to have selected only the right bugs (>100) :-) A nasty re-entrancy in beginRemoveRows is the cause for the crash. #0 QSortFilterProxyModelPrivate::source_items_about_to_be_removed (this=0x13d9520, source_parent=@0x7fff513d08b0, start=0, end=63) at itemviews/qsortfilterproxymodel.cpp:702 #1 0x00007f4145db096d in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved (this=0x13d9520, source_parent=@0x7fff513d08b0, start=0, end=63) at itemviews/qsortfilterproxymodel.cpp:1128 #5 0x00007f414669284b in QAbstractItemModel::rowsAboutToBeRemoved (this=0x13d9200, _t1=@0x7fff513d08b0, _t2=0, _t3=63) at .moc/debug-shared/moc_qabstractitemmodel.cpp:164 #6 0x00007f41466360fb in QAbstractItemModel::beginRemoveRows (this=0x13d9200, parent=@0x7fff513d08b0, first=0, last=63) at kernel/qabstractitemmodel.cpp:2124 #7 0x00007f4147fb2682 in KDirModelPrivate::_k_slotClear (this=0x13d58b0) at /d/kde/src/trunk/kdelibs/kio/kio/kdirmodel.cpp:523 #11 0x00007f4147f9b9b8 in KDirLister::clear (this=0x13d7950) at /d/kde/build/trunk/kdelibs/kio/kdirlister.moc:242 #12 0x00007f4147fa20f5 in KDirListerCache::forgetDirs (this=0x6ec2c0, lister=0x13d7950) at /d/kde/src/trunk/kdelibs/kio/kio/kdirlister.cpp:437 #13 0x00007f4147fa4169 in KDirListerCache::listDir (this=0x6ec2c0, lister=0x13d7950, _u=@0x7fff513d0ec0, _keep=false, _reload=false) at /d/kde/src/trunk/kdelibs/kio/kio/kdirlister.cpp:128 #14 0x00007f4147fa5d37 in KDirLister::openUrl (this=0x13d7950, _url=@0x7fff513d0ec0, _flags=@0x7fff513d0e60) at /d/kde/src/trunk/kdelibs/kio/kio/kdirlister.cpp:1810 #15 0x00007f4134d210aa in KDirOperator::Private::openUrl (this=0x13d6650, url=@0x7fff513d0ec0, flags=@0x7fff513d0f90) at /d/kde/src/trunk/kdelibs/kfile/kdiroperator.cpp:1098 #16 0x00007f4134d26d88 in KDirOperator::setUrl (this=0x13d2dd0, _newurl=@0x7fff513d1060, clearforward=false) at /d/kde/src/trunk/kdelibs/kfile/kdiroperator.cpp:1079 #17 0x00007f4134d367bb in KFileWidget::setUrl (this=0x10dbc80, url=@0x7fff513d1060, clearforward=false) at /d/kde/src/trunk/kdelibs/kfile/kfilewidget.cpp:1309 #18 0x00007f4134d3b970 in KFileWidgetPrivate::setLocationText (this=0x10dd4b0, url=@0x10dd4b8) at /d/kde/src/trunk/kdelibs/kfile/kfilewidget.cpp:1127 #19 0x00007f4134d3beea in KFileWidgetPrivate::_k_fileHighlighted (this=0x10dd4b0, i=@0x7fff513d1370) at /d/kde/src/trunk/kdelibs/kfile/kfilewidget.cpp:997 #23 0x00007f4134d1bbc9 in KDirOperator::fileHighlighted (this=0x13d2dd0, _t1=@0x7fff513d1370) at /d/kde/build/trunk/kdelibs/kfile/kdiroperator.moc:299 #24 0x00007f4134d1c605 in KDirOperator::highlightFile (this=0x13d2dd0, item=@0x7fff513d1370) at /d/kde/src/trunk/kdelibs/kfile/kdiroperator.cpp:1669 #25 0x00007f4134d25e15 in KDirOperator::Private::_k_slotSelectionChanged (this=0x13d6650) at /d/kde/src/trunk/kdelibs/kfile/kdiroperator.cpp:2367 #29 0x00007f4145d7bbdf in QItemSelectionModel::selectionChanged (this=0x1477450, _t1=@0x7fff513d1590, _t2=@0x7fff513d15a0) at .moc/debug-shared/moc_qitemselectionmodel.cpp:144 #30 0x00007f4145d7e1a7 in QItemSelectionModel::emitSelectionChanged (this=0x1477450, newSelection=@0x7fff513d1610, oldSelection=@0x7fff513d1630) at itemviews/qitemselectionmodel.cpp:1454 #31 0x00007f4145d8057d in QItemSelectionModel::select (this=0x1477450, selection=@0x7fff513d1720, command=@0x7fff513d1730) at itemviews/qitemselectionmodel.cpp:1013 #32 0x00007f4145d80feb in QItemSelectionModel::select (this=0x1477450, index=@0x15a2460, command=@0x7fff513d1810) at itemviews/qitemselectionmodel.cpp:901 #33 0x00007f4145d7c598 in QItemSelectionModel::setCurrentIndex (this=0x1477450, index=@0x7fff513d1980, command=@0x7fff513d18d0) at itemviews/qitemselectionmodel.cpp:1081 #34 0x00007f4145d321ea in QAbstractItemView::setCurrentIndex (this=0x13f9290, index=@0x7fff513d1980) at itemviews/qabstractitemview.cpp:869 #35 0x00007f4145d327ce in QAbstractItemView::rowsAboutToBeRemoved (this=0x13f9290, parent=@0x7fff513d1de0, start=36, end=36) at itemviews/qabstractitemview.cpp:2887 #36 0x00007f4145d53a66 in QListView::rowsAboutToBeRemoved (this=0x13f9290, parent=@0x7fff513d1de0, start=36, end=36) at itemviews/qlistview.cpp:778 #37 0x00007f4145d3659f in QAbstractItemView::qt_metacall (this=0x13f9290, _c=QMetaObject::InvokeMetaMethod, _id=18, _a=0x7fff513d1c80) at .moc/debug-shared/moc_qabstractitemview.cpp:225 #41 0x00007f414669284b in QAbstractItemModel::rowsAboutToBeRemoved (this=0x13d9840, _t1=@0x7fff513d1de0, _t2=36, _t3=36) at .moc/debug-shared/moc_qabstractitemmodel.cpp:164 #42 0x00007f41466360fb in QAbstractItemModel::beginRemoveRows (this=0x13d9840, parent=@0x7fff513d1de0, first=36, last=36) at kernel/qabstractitemmodel.cpp:2124 #43 0x00007f4145daf82c in QSortFilterProxyModelPrivate::remove_proxy_interval (this=0x13d9520, source_to_proxy=@0x1476f70, proxy_to_source=@0x1476f60, proxy_start=36, proxy_end=36, proxy_parent=@0x7fff513d1de0, orient=Qt::Vertical, emit_signal=true) at itemviews/qsortfilterproxymodel.cpp:453 #44 0x00007f4145dafb99 in QSortFilterProxyModelPrivate::remove_source_items (this=0x13d9520, source_to_proxy=@0x1476f70, proxy_to_source=@0x1476f60, source_items=@0x7fff513d1f00, source_parent=@0x7fff513d22b0, orient=Qt::Vertical, emit_signal=true) at itemviews/qsortfilterproxymodel.cpp:434 #45 0x00007f4145db08ce in QSortFilterProxyModelPrivate::source_items_about_to_be_removed (this=0x13d9520, source_parent=@0x7fff513d22b0, start=55, end=55, orient=Qt::Vertical) at itemviews/qsortfilterproxymodel.cpp:727 #46 0x00007f4145db096d in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved (this=0x13d9520, source_parent=@0x7fff513d22b0, start=55, end=55) The current file gets deleted -> KFileDialog selects another one -> the locationbar is updated -> KFileDialog relists the current directory! Not good. SVN commit 890378 by dfaure: Don't reload the current directory when selecting a file in the file dialog (and especially not when that file is auto-selected because the previously current file got deleted externally - #173454 crash) BUG: 173454 M +3 -2 kdiroperator.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=890378 |