Bug 169109 - Crash in project view during close
Summary: Crash in project view during close
Status: RESOLVED FIXED
Alias: None
Product: kdevplatform
Classification: Developer tools
Component: project (show other bugs)
Version: git master
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-08-14 10:39 UTC by Hamish Rodda
Modified: 2008-08-20 14:42 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hamish Rodda 2008-08-14 10:39:10 UTC
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
Comment 1 Andreas Pakulat 2008-08-14 19:49:10 UTC
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.
Comment 2 Andreas Pakulat 2008-08-20 14:42:44 UTC
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).