I could reproduce this with Konqueror trunk, but for whatever reason not with Kwrite. Start Konqueror, CTRL-O to open the file dialog. Select a file there, but do not close the dialog. Switch to a terminal and rename/delete the file->crash. First happened in a form where I could select to upload a file. Application: Konqueror (konqueror), signal SIGABRT [?1034h[Thread debugging using libthread_db enabled] 0x00007f3de9898261 in nanosleep () from /lib64/libc.so.6 Thread 1 (Thread 0x7f3df0c29700 (LWP 29840)): [KCrash Handler] #5 0x00007f3de98285c5 in raise () from /lib64/libc.so.6 #6 0x00007f3de9829bb3 in abort () from /lib64/libc.so.6 #7 0x00007f3ded3d9cdc in qt_message_output () from /opt/qt4/lib/libQtCore.so.4 #8 0x00007f3ded3d9deb in qFatal () from /opt/qt4/lib/libQtCore.so.4 #9 0x00007f3ded3d9e27 in qt_assert_x () from /opt/qt4/lib/libQtCore.so.4 #10 0x00007f3dec39f92f in QVector<int>::remove () from /opt/qt4/lib/libQtGui.so.4 #11 0x00007f3dec725421 in QSortFilterProxyModelPrivate::remove_proxy_interval () from /opt/qt4/lib/libQtGui.so.4 #12 0x00007f3dec7255f4 in QSortFilterProxyModelPrivate::remove_source_items () from /opt/qt4/lib/libQtGui.so.4 #13 0x00007f3dec726683 in QSortFilterProxyModelPrivate::source_items_about_to_be_removed () from /opt/qt4/lib/libQtGui.so.4 #14 0x00007f3dec72672b in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved () from /opt/qt4/lib/libQtGui.so.4 #15 0x00007f3dec7269aa in QSortFilterProxyModel::qt_metacall () from /opt/qt4/lib/libQtGui.so.4 #16 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #17 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #18 0x00007f3ded5600ff in QAbstractItemModel::rowsAboutToBeRemoved () from /opt/qt4/lib/libQtCore.so.4 #19 0x00007f3ded4f080f in QAbstractItemModel::beginRemoveRows () from /opt/qt4/lib/libQtCore.so.4 #20 0x00007f3defd1a7be in KDirModelPrivate::_k_slotDeleteItems (this=0x10fd020, items=@0x7ffff8c74ab0) at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirmodel.cpp:423 #21 0x00007f3defd1d2de in KDirModel::qt_metacall (this=0x10fe660, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff8c74a90) at /data/development/build/kde-trunk/kdelibs/kio/kdirmodel.moc:77 #22 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #23 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #24 0x00007f3defd01725 in KDirLister::itemsDeleted (this=0x7490, _t1=<value optimized out>) at /data/development/build/kde-trunk/kdelibs/kio/kdirlister.moc:277 #25 0x00007f3defd024d1 in KDirLister::Private::emitItemsDeleted (this=0x10fe4f0, _items=<value optimized out>) at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirlister.cpp:2322 #26 0x00007f3defd11aa8 in KDirListerCache::itemsDeleted (this=0x70c980, listers=<value optimized out>, deletedItems=@0x7ffff8c74b80) at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirlister.cpp:1623 #27 0x00007f3defd11ced in KDirListerCache::deleteUnmarkedItems (this=0x70c980, listers=@0x7ffff8c74e50, lstItems=@0x12f6f60) at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirlister.cpp:1617 #28 0x00007f3defd1295b in KDirListerCache::slotUpdateResult (this=0x70c980, j=<value optimized out>) at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirlister.cpp:1553 #29 0x00007f3defd14b97 in KDirListerCache::qt_metacall (this=0x70c980, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff8c75080) at /data/development/build/kde-trunk/kdelibs/kio/kdirlister_p.moc:101 #30 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #31 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #32 0x00007f3dee51f2f2 in KJob::result (this=0x7490, _t1=0x13b99f0) at /data/development/build/kde-trunk/kdelibs/kdecore/kjob.moc:186 #33 0x00007f3dee51f6bf in KJob::emitResult (this=0x13b99f0) at /data/development/sources/kde-trunk/kdelibs/kdecore/jobs/kjob.cpp:294 #34 0x00007f3defce1c20 in KIO::SimpleJob::slotFinished (this=0x13b99f0) at /data/development/sources/kde-trunk/kdelibs/kio/kio/job.cpp:489 #35 0x00007f3defce3e15 in KIO::ListJob::slotFinished (this=0x13b99f0) at /data/development/sources/kde-trunk/kdelibs/kio/kio/job.cpp:2413 #36 0x00007f3defce807d in KIO::ListJob::qt_metacall (this=0x13b99f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff8c753e0) at /data/development/build/kde-trunk/kdelibs/kio/jobclasses.moc:747 #37 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #38 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #39 0x00007f3defda3ca1 in KIO::SlaveInterface::dispatch (this=0x84ae00, _cmd=104, rawdata=<value optimized out>) at /data/development/sources/kde-trunk/kdelibs/kio/kio/slaveinterface.cpp:175 #40 0x00007f3defda0758 in KIO::SlaveInterface::dispatch (this=0x84ae00) at /data/development/sources/kde-trunk/kdelibs/kio/kio/slaveinterface.cpp:91 #41 0x00007f3defd92923 in KIO::Slave::gotInput (this=0x84ae00) at /data/development/sources/kde-trunk/kdelibs/kio/kio/slave.cpp:322 #42 0x00007f3defd93958 in KIO::Slave::qt_metacall (this=0x84ae00, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7ffff8c75880) at /data/development/build/kde-trunk/kdelibs/kio/slave.moc:75 #43 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #44 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #45 0x00007f3defcae660 in KIO::ConnectionPrivate::dequeue (this=0x8381d0) at /data/development/sources/kde-trunk/kdelibs/kio/kio/connection.cpp:82 #46 0x00007f3defcae79a in KIO::Connection::qt_metacall (this=0xc979a0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x141e640) at /data/development/build/kde-trunk/kdelibs/kio/connection.moc:72 #47 0x00007f3ded50e1b1 in QMetaCallEvent::placeMetaCall () from /opt/qt4/lib/libQtCore.so.4 #48 0x00007f3ded513436 in QObject::event () from /opt/qt4/lib/libQtCore.so.4 #49 0x00007f3dec0c2817 in QApplicationPrivate::notify_helper () from /opt/qt4/lib/libQtGui.so.4 #50 0x00007f3dec0c2b33 in QApplication::notify () from /opt/qt4/lib/libQtGui.so.4 #51 0x00007f3def7f62db in KApplication::notify (this=0x7ffff8c78e80, receiver=0xc979a0, event=0x14ca880) at /data/development/sources/kde-trunk/kdelibs/kdeui/kernel/kapplication.cpp:307 #52 0x00007f3ded4fc4c8 in QCoreApplication::notifyInternal () from /opt/qt4/lib/libQtCore.so.4 #53 0x00007f3ded5011b1 in QCoreApplication::sendEvent () from /opt/qt4/lib/libQtCore.so.4 #54 0x00007f3ded4fcb2b in QCoreApplicationPrivate::sendPostedEvents () from /opt/qt4/lib/libQtCore.so.4 #55 0x00007f3ded4fce3a in QCoreApplication::sendPostedEvents () from /opt/qt4/lib/libQtCore.so.4 #56 0x00007f3ded534ef7 in QCoreApplication::sendPostedEvents () from /opt/qt4/lib/libQtCore.so.4 #57 0x00007f3ded534119 in postEventSourceDispatch () from /opt/qt4/lib/libQtCore.so.4 #58 0x00007f3de866c93a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #59 0x00007f3de8670040 in ?? () from /usr/lib64/libglib-2.0.so.0 #60 0x00007f3de86701dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #61 0x00007f3ded533226 in QEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtCore.so.4 #62 0x00007f3dec1833b7 in QGuiEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtGui.so.4 #63 0x00007f3ded4f8b5b in QEventLoop::processEvents () from /opt/qt4/lib/libQtCore.so.4 #64 0x00007f3ded4f8d58 in QEventLoop::exec () from /opt/qt4/lib/libQtCore.so.4 #65 0x00007f3dec61fbb9 in QDialog::exec () from /opt/qt4/lib/libQtGui.so.4 #66 0x00007f3defde4a89 in KFileDialog::getOpenUrl (startDir=@0x7ffff8c76840, filter=@0x7ffff8c76880, parent=0x828c00, caption=@0x7ffff8c76870) at /data/development/sources/kde-trunk/kdelibs/kio/kfile/kfiledialog.cpp:476 #67 0x00007f3df0805e6b in KonqMainWindow::slotOpenFile (this=0x828c00) at /data/development/sources/kde-trunk/kdebase/apps/konqueror/src/konqmainwindow.cpp:1427 #68 0x00007f3df080853d in KonqMainWindow::qt_metacall (this=0x828c00, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff8c76bb0) at /data/development/build/kde-trunk/kdebase/apps/konqueror/src/konqmainwindow.moc:356 #69 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #70 0x00007f3ded515d9d in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4 #71 0x00007f3dec0b8d0b in QAction::triggered () from /opt/qt4/lib/libQtGui.so.4 #72 0x00007f3dec0bafd5 in QAction::activate () from /opt/qt4/lib/libQtGui.so.4 #73 0x00007f3dec0bb18c in QAction::event () from /opt/qt4/lib/libQtGui.so.4 #74 0x00007f3def71fcd3 in KAction::event (this=0x7490, event=0x7490) at /data/development/sources/kde-trunk/kdelibs/kdeui/actions/kaction.cpp:88 #75 0x00007f3dec0c2817 in QApplicationPrivate::notify_helper () from /opt/qt4/lib/libQtGui.so.4 #76 0x00007f3dec0c2b33 in QApplication::notify () from /opt/qt4/lib/libQtGui.so.4 #77 0x00007f3def7f62db in KApplication::notify (this=0x7ffff8c78e80, receiver=0x9d1c90, event=0x7ffff8c773b0) at /data/development/sources/kde-trunk/kdelibs/kdeui/kernel/kapplication.cpp:307 #78 0x00007f3ded4fc4c8 in QCoreApplication::notifyInternal () from /opt/qt4/lib/libQtCore.so.4 #79 0x00007f3ded5011b1 in QCoreApplication::sendEvent () from /opt/qt4/lib/libQtCore.so.4 #80 0x00007f3dec10b39b in QShortcutMap::dispatchEvent () from /opt/qt4/lib/libQtGui.so.4 #81 0x00007f3dec10c492 in QShortcutMap::tryShortcutEvent () from /opt/qt4/lib/libQtGui.so.4 #82 0x00007f3dec0c2da2 in QApplication::notify () from /opt/qt4/lib/libQtGui.so.4 #83 0x00007f3def7f62db in KApplication::notify (this=0x7ffff8c78e80, receiver=0x9beca0, event=0x7ffff8c77b10) at /data/development/sources/kde-trunk/kdelibs/kdeui/kernel/kapplication.cpp:307 #84 0x00007f3ded4fc4c8 in QCoreApplication::notifyInternal () from /opt/qt4/lib/libQtCore.so.4 #85 0x00007f3dec0d1841 in QCoreApplication::sendSpontaneousEvent () from /opt/qt4/lib/libQtGui.so.4 #86 0x00007f3dec13de80 in qt_sendSpontaneousEvent () from /opt/qt4/lib/libQtGui.so.4 #87 0x00007f3dec17fa6e in QKeyMapper::sendKeyEvent () from /opt/qt4/lib/libQtGui.so.4 #88 0x00007f3dec18109c in QKeyMapperPrivate::translateKeyEvent () from /opt/qt4/lib/libQtGui.so.4 #89 0x00007f3dec154eff in QApplication::x11ProcessEvent () from /opt/qt4/lib/libQtGui.so.4 #90 0x00007f3dec183d56 in x11EventSourceDispatch () from /opt/qt4/lib/libQtGui.so.4 #91 0x00007f3de866c93a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #92 0x00007f3de8670040 in ?? () from /usr/lib64/libglib-2.0.so.0 #93 0x00007f3de86701dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #94 0x00007f3ded533226 in QEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtCore.so.4 #95 0x00007f3dec1833b7 in QGuiEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtGui.so.4 #96 0x00007f3ded4f8b5b in QEventLoop::processEvents () from /opt/qt4/lib/libQtCore.so.4 #97 0x00007f3ded4f8d58 in QEventLoop::exec () from /opt/qt4/lib/libQtCore.so.4 #98 0x00007f3ded4fcf49 in QCoreApplication::exec () from /opt/qt4/lib/libQtCore.so.4 #99 0x00007f3dec0c2574 in QApplication::exec () from /opt/qt4/lib/libQtGui.so.4 #100 0x00007f3df0831201 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /data/development/sources/kde-trunk/kdebase/apps/konqueror/src/konqmain.cpp:257 #101 0x00007f3de9814436 in __libc_start_main () from /lib64/libc.so.6 #102 0x00000000004008c9 in _start ()
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