Summary: | CMake project configuration dialog works incorrect (even crashes sometimes:) | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | Chaos A.D. <chaos-ad> |
Component: | Build tools: CMake | Assignee: | kdevelop-bugs-null |
Status: | RESOLVED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | 4.2.0 | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Chaos A.D.
2010-12-29 10:45:44 UTC
ough, deep in Qt. Can you reproduce this at will? If so, please run it through Valgrind. The other bug should be fixed by Aleix eventually (hopefully) :) ==8817== Invalid read of size 4 ==8817== at 0x5EF223C: QItemSelectionModel::isColumnSelected(int, QModelIndex const&) const (qitemselectionmodel.cpp:1314) ==8817== by 0x5EA0C30: QHeaderViewPrivate::isSectionSelected(int) const (qheaderview_p.h:133) ==8817== by 0x5EAB1CD: QHeaderView::paintSection(QPainter*, QRect const&, int) const (qheaderview.cpp:2456) ==8817== by 0x5EA84F6: QHeaderView::paintEvent(QPaintEvent*) (qheaderview.cpp:2112) ==8817== by 0x591FCC5: QWidget::event(QEvent*) (qwidget.cpp:8333) ==8817== by 0x5D41762: QFrame::event(QEvent*) (qframe.cpp:557) ==8817== by 0x5DDEA81: QAbstractScrollArea::viewportEvent(QEvent*) (qabstractscrollarea.cpp:1043) ==8817== by 0x5E9B0F6: QAbstractItemView::viewportEvent(QEvent*) (qabstractitemview.cpp:1619) ==8817== by 0x5EA6173: QHeaderView::viewportEvent(QEvent*) (qheaderview.cpp:2425) ==8817== by 0x5DE14D4: QAbstractScrollAreaFilter::eventFilter(QObject*, QEvent*) (qabstractscrollarea_p.h:100) ==8817== by 0x5646299: QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (qcoreapplication.cpp:847) ==8817== by 0x58C1FB8: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4392) ==8817== by 0x58C80E8: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4361) ==8817== by 0x5289689: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:310) ==8817== by 0x804BC3B: KDevelopApplication::notify(QObject*, QEvent*) (in /usr/local/bin/kdevelop) ==8817== by 0x5646B3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:732) ==8817== by 0x5926EE5: QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qcoreapplication.h:218) ==8817== by 0x5927CFE: QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qwidget.cpp:5627) ==8817== by 0x5926C34: QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qwidget.cpp:5473) ==8817== by 0x5927CFE: QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qwidget.cpp:5627) ==8817== by 0x5927B37: QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qwidget.cpp:5614) ==8817== by 0x5927B37: QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qwidget.cpp:5614) ==8817== by 0x5927B37: QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qwidget.cpp:5614) ==8817== by 0x5927B37: QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qwidget.cpp:5614) ==8817== by 0x5926C34: QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) (qwidget.cpp:5473) ==8817== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==8817== KCrash: Application 'kdevelop' crashing... KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit QSocketNotifier: Invalid socket 15 and type 'Read', disabling... ==8817== Thread 4: ==8817== Invalid read of size 2 ==8817== at 0x5675A05: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:92) ==8817== by 0x6F40B38: g_main_context_check (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x6F4145D: ??? (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x6F41847: g_main_context_iteration (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x5675564: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:415) ==8817== by 0x5645608: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==8817== by 0x5645A89: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==8817== by 0x5541B7D: QThread::exec() (qthread.cpp:490) ==8817== by 0x562435A: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) ==8817== by 0x5544DF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266) ==8817== by 0x5780CC8: start_thread (pthread_create.c:304) ==8817== by 0x64B469D: clone (clone.S:130) ==8817== Address 0xa20891e is 6 bytes inside a block of size 12 free'd ==8817== at 0x4025504: operator delete(void*) (vg_replace_malloc.c:387) ==8817== by 0x56760B4: QEventDispatcherGlib::unregisterSocketNotifier(QSocketNotifier*) (qeventdispatcher_glib.cpp:496) ==8817== by 0x56641D9: QSocketNotifier::setEnabled(bool) (qsocketnotifier.cpp:298) ==8817== by 0x5675A01: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:92) ==8817== by 0x6F40B38: g_main_context_check (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x6F4145D: ??? (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x6F41847: g_main_context_iteration (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x5675564: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:415) ==8817== by 0x5645608: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==8817== by 0x5645A89: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==8817== by 0x5541B7D: QThread::exec() (qthread.cpp:490) ==8817== by 0x562435A: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) ==8817== by 0x5544DF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266) ==8817== by 0x5780CC8: start_thread (pthread_create.c:304) ==8817== by 0x64B469D: clone (clone.S:130) ==8817== ==8817== Invalid read of size 2 ==8817== at 0x5675A09: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:83) ==8817== by 0x6F40B38: g_main_context_check (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x6F4145D: ??? (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x6F41847: g_main_context_iteration (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x5675564: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:415) ==8817== by 0x5645608: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==8817== by 0x5645A89: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==8817== by 0x5541B7D: QThread::exec() (qthread.cpp:490) ==8817== by 0x562435A: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) ==8817== by 0x5544DF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266) ==8817== by 0x5780CC8: start_thread (pthread_create.c:304) ==8817== by 0x64B469D: clone (clone.S:130) ==8817== Address 0xa20891c is 4 bytes inside a block of size 12 free'd ==8817== at 0x4025504: operator delete(void*) (vg_replace_malloc.c:387) ==8817== by 0x56760B4: QEventDispatcherGlib::unregisterSocketNotifier(QSocketNotifier*) (qeventdispatcher_glib.cpp:496) ==8817== by 0x56641D9: QSocketNotifier::setEnabled(bool) (qsocketnotifier.cpp:298) ==8817== by 0x5675A01: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:92) ==8817== by 0x6F40B38: g_main_context_check (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x6F4145D: ??? (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x6F41847: g_main_context_iteration (in /lib/libglib-2.0.so.0.2600.0) ==8817== by 0x5675564: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:415) ==8817== by 0x5645608: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==8817== by 0x5645A89: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==8817== by 0x5541B7D: QThread::exec() (qthread.cpp:490) ==8817== by 0x562435A: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) ==8817== by 0x5544DF8: QThreadPrivate::start(void*) (qthread_unix.cpp:266) ==8817== by 0x5780CC8: start_thread (pthread_create.c:304) ==8817== by 0x64B469D: clone (clone.S:130) ==8817== Git commit 618eb5e13fd991921d38ae6e936d6836b94d25cf by Andreas Pakulat. Committed on 26/07/2011 at 21:41. Pushed by apaku into branch 'master'. Fix cleanup of cache-model Directly deleting the cache model and leaving a reference in the view is dangerous as the related bugreport shows. I'm not sure why there was an event sent out to the selectionmodel, but it seems this happens already when deleting the model. The event however is delivered later on in the nested event-loop from the kmessagebox and at that point the selectionmodel is already gone. So disconnect the selectionmodel properly, explicitly remove the model from the view and let the cache model alive for one round of event-processing. CCBUG: 261519 M +3 -1 projectmanagers/cmake/settings/cmakepreferences.cpp http://commits.kde.org/kdevelop/618eb5e13fd991921d38ae6e936d6836b94d25cf Git commit 7f5cc9fad784734a4656f755cd53462872d01394 by Andreas Pakulat. Committed on 26/07/2011 at 23:52. Pushed by apaku into branch 'master'. Fix creation of builddirs with custom cmake args This should fix all open problems configuring new builddirs and changing stuff in the builddir-creation dialog. It takes the values from the dialog and explicitly initializes the kconfigskeleton items from them. This ensures the values end up in the config file and we don't loose things set in the dialog. Also necessary for this is to pre-initialize the local variables in save so that there's no empty stuff written out in case no model has been created yet. Last add a TODO about the possibility to have different builddirs with different configs and not being able to re-run cmake from scratch for them, but thats something for another time. Probably would be useful to completely drop the kconfig-skeleton stuff since its not used anyway by the kcm and would make it more explicit that the module has to keep track of these things manually. BUG: 261519 M +37 -10 projectmanagers/cmake/settings/cmakepreferences.cpp http://commits.kde.org/kdevelop/7f5cc9fad784734a4656f755cd53462872d01394 |