Sometimes when closing I get a crash (bt follows). This time it happened when I had two projects open (kdevplatform and kdevelop), closed one (kdevelop), and then tried to close kdevelop.. Program received signal SIGSEGV, Segmentation fault. 0x00007f0df0c347b4 in QSortFilterProxyModelPrivate::index_to_iterator (this=0x2e35ba0, proxy_index=@0x7ffffc16fab0) at itemviews/qsortfilterproxymodel.cpp:151 151 Q_ASSERT(it.value()); (gdb) bt #0 0x00007f0df0c347b4 in QSortFilterProxyModelPrivate::index_to_iterator (this=0x2e35ba0, proxy_index=@0x7ffffc16fab0) at itemviews/qsortfilterproxymodel.cpp:151 #1 0x00007f0df0c2cfa0 in QSortFilterProxyModel::parent (this=0x2e35b80, child=@0x7ffffc16fab0) at itemviews/qsortfilterproxymodel.cpp:1448 #2 0x00007f0df1c6dde1 in QModelIndex::parent (this=0x7ffffc16fab0) at kernel/qabstractitemmodel.h:364 #3 0x00007f0df1c6a240 in QAbstractItemModelPrivate::rowsAboutToBeRemoved (this=0x2e35ba0, parent=@0x7ffffc16fc00, first=0, last=0) at kernel/qabstractitemmodel.cpp:587 #4 0x00007f0df1c6b1d6 in QAbstractItemModel::beginRemoveRows (this=0x2e35b80, parent=@0x7ffffc16fc00, first=0, last=0) at kernel/qabstractitemmodel.cpp:2123 #5 0x00007f0df0c309a1 in QSortFilterProxyModelPrivate::remove_proxy_interval (this=0x2e35ba0, source_to_proxy=@0x2e39b50, proxy_to_source=@0x2e39b40, proxy_start=0, proxy_end=0, proxy_parent=@0x7ffffc16fc00, orient=Qt::Vertical, emit_signal=true) at itemviews/qsortfilterproxymodel.cpp:453 #6 0x00007f0df0c30b4a in QSortFilterProxyModelPrivate::remove_source_items (this=0x2e35ba0, source_to_proxy=@0x2e39b50, proxy_to_source=@0x2e39b40, source_items=@0x7ffffc16fcb0, source_parent=@0x7ffffc16ffb0, orient=Qt::Vertical, emit_signal=true) at itemviews/qsortfilterproxymodel.cpp:435 #7 0x00007f0df0c31789 in QSortFilterProxyModelPrivate::source_items_about_to_be_removed (this=0x2e35ba0, source_parent=@0x7ffffc16ffb0, start=0, end=0, orient=Qt::Vertical) at itemviews/qsortfilterproxymodel.cpp:720 #8 0x00007f0df0c317f5 in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved (this=0x2e35ba0, source_parent=@0x7ffffc16ffb0, start=0, end=0) at itemviews/qsortfilterproxymodel.cpp:1114 #9 0x00007f0df0c31a74 in QSortFilterProxyModel::qt_metacall (this=0x2e35b80, _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0x7ffffc16ff00) at .moc/debug-shared/moc_qsortfilterproxymodel.cpp:126 #10 0x00007f0df1c89a6b in QMetaObject::activate (sender=0x911140, from_signal_index=10, to_signal_index=10, argv=0x7ffffc16ff00) at kernel/qobject.cpp:3004 #11 0x00007f0df1c89ecf in QMetaObject::activate (sender=0x911140, m=0x7f0df1f89d40, local_signal_index=6, argv=0x7ffffc16ff00) at kernel/qobject.cpp:3077 #12 0x00007f0df1cc7c73 in QAbstractItemModel::rowsAboutToBeRemoved (this=0x911140, _t1=@0x7ffffc16ffb0, _t2=0, _t3=0) at .moc/debug- #13 0x00007f0df1c6b1c3 in QAbstractItemModel::beginRemoveRows (this=0x911140, parent=@0x7ffffc16ffb0, first=0, last=0) at kernel/qabstractitemmodel.cpp:2122 #14 0x00007f0df0c3a5b7 in QStandardItemModelPrivate::rowsAboutToBeRemoved (this=0x911170, parent=0x911710, start=0, end=0) at itemviews/qstandarditemmodel.cpp:511 #15 0x00007f0df0c3a64d in QStandardItem::removeRows (this=0x911710, row=0, count=1) at itemviews/qstandarditemmodel.cpp:1596 #16 0x00007f0df0c3a7fc in QStandardItem::removeRow (this=0x911710, row=0) at itemviews/qstandarditemmodel.cpp:1570 #17 0x00007f0df0c3a903 in QStandardItem::takeRow (this=0x911710, row=0) at itemviews/qstandarditemmodel.cpp:1731 #18 0x00007f0df387dc31 in KDevelop::Project::close (this=0x9cf740) at /opt/kde4/src/kdevplatform/shell/project.cpp:361 #19 0x00007f0df38773fb in KDevelop::ProjectController::closeProject (this=0x8d01e0, proj=0x9cf740) at /opt/kde4/src/kdevplatform/shell/projectcontroller.cpp:462 #20 0x00007f0df387812a in KDevelop::ProjectController::cleanup (this=0x8d01e0) at /opt/kde4/src/kdevplatform/shell/projectcontroller.cpp:222 #21 0x00007f0df3870c8e in KDevelop::Core::cleanup (this=0x749e30) at /opt/kde4/src/kdevplatform/shell/core.cpp:150 #22 0x00007f0df3861017 in ~MainWindow (this=0x75fce0) at /opt/kde4/src/kdevplatform/shell/mainwindow.cpp:85 #23 0x00007f0df1c83c2c in qDeleteInEventHandler (o=0x75fce0) at kernel/qobject.cpp:3635 #24 0x00007f0df1c87d54 in QObject::event (this=0x75fce0, e=0x106b5530) at kernel/qobject.cpp:1115 #25 0x00007f0df073fb0f in QWidget::event (this=0x75fce0, event=0x106b5530) at kernel/qwidget.cpp:7407 #26 0x00007f0df0aaa5ca in QMainWindow::event (this=0x75fce0, event=0x106b5530) at widgets/qmainwindow.cpp:1274 #27 0x00007f0df271dc5b in KMainWindow::event (this=0x75fce0, ev=0x106b5530) at /opt/kde4/src/kdelibs/kdeui/widgets/kmainwindow.cpp:1020 #28 0x00007f0df27587e8 in KXmlGuiWindow::event (this=0x6f6674616c707665, ev=0x7ffffc16f980) at /opt/kde4/src/kdelibs/kdeui/xmlgui/kxmlguiwindow.cpp:122 #29 0x00007f0df06e5c7b in QApplicationPrivate::notify_helper (this=0x6cdd30, receiver=0x75fce0, e=0x106b5530) at kernel/qapplication.cpp:3800 #30 0x00007f0df06e78df in QApplication::notify (this=0x7ffffc171250, receiver=0x75fce0, e=0x106b5530) at kernel/qapplication.cpp:3765 #31 0x00007f0df265df0b in KApplication::notify (this=0x7ffffc171250, receiver=0x75fce0, event=0x106b5530) at /opt/kde4/src/kdelibs/kdeui/kernel/kapplication.cpp:311 #32 0x00007f0df1c74f76 in QCoreApplication::notifyInternal (this=0x7ffffc171250, receiver=0x75fce0, event=0x106b5530) at kernel/qcoreapplication.cpp:587 #33 0x00007f0df1c789b5 in QCoreApplication::sendEvent (receiver=0x75fce0, event=0x106b5530) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #34 0x00007f0df1c754ed in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x60d860) at kernel/qcoreapplication.cpp:1199 #35 0x00007f0df1c756b4 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1095 #36 0x00007f0df1ca4c75 in QCoreApplication::sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #37 0x00007f0df1ca3ec3 in postEventSourceDispatch (s=0x6cfe60) at kernel/qeventdispatcher_glib.cpp:211 #38 0x00007f0deabd43d4 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #39 0x00007f0deabd76e5 in ?? () from /usr/lib/libglib-2.0.so.0 #40 0x00007f0deabd7bcb in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #41 0x00007f0df1ca3210 in QEventDispatcherGlib::processEvents (this=0x6cdc50, flags=@0x7ffffc171050) at kernel/qeventdispatcher_glib.cpp:325 #42 0x00007f0df0787c1b in QGuiEventDispatcherGlib::processEvents (this=0x6cdc50, flags=@0x7ffffc1710b0) at kernel/qguieventdispatcher_glib.cpp:204 #43 0x00007f0df1c720c0 in QEventLoop::processEvents (this=0x7ffffc171170, flags=@0x7ffffc171130) at kernel/qeventloop.cpp:149 #44 0x00007f0df1c722bc in QEventLoop::exec (this=0x7ffffc171170, flags=@0x7ffffc171190) at kernel/qeventloop.cpp:196 #45 0x00007f0df1c757c0 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:849 #46 0x00007f0df06e59dc in QApplication::exec () at kernel/qapplication.cpp:3330 #47 0x0000000000406f85 in main (argc=1, argv=0x7ffffc1721b8) at /opt/kde4/src/kdevelop/src/main.cpp:209
I've looked at the code recently with the same bt. Basically there are two things I could imagine going wrong: a) a bug in Qt, as you can see after takeRow the whole backtrace is deep inside Qt's model classes and doesn't get back to kdevelop and takerow does get a valid item. b) This is again a problem with our meta-parent-workspace item in the project tree, luckily I'll be removing that one soon.
I think this is fixed with the removal of the workspace item, please re-open with an up-to-date backtrac if its still reproduceable. (the last 20 closes of kdevelop here didn't crash like that).