Application: kdevelop (5.1.40) Qt Version: 5.7.1 Frameworks Version: 5.29.0 Operating System: Linux 4.8.13-1-ARCH x86_64 Distribution: "Arch Linux" -- Information about the crash: Using latest git version kdevplatform/kdevelop - What I was doing when the application crashed: * Open KDevelop in a new session * Click on the QuickOpen lineedit on the toolbar * Crash (with or without a project currently open) The crash can be reproduced every time. -- Backtrace: Application: KDevelop (kdevelop), signal: Segmentation fault Using host libthread_db library "/usr/lib/libthread_db.so.1". [Current thread is 1 (Thread 0x7f1ca7373600 (LWP 17089))] Thread 14 (Thread 0x7f1bae4ba700 (LWP 17214)): #0 0x00007f1c9db974b8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f1ca4865ae6 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f1ca48611e4 in () at /usr/lib/libQt5Core.so.5 #3 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #4 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 13 (Thread 0x7f1baeffd700 (LWP 17212)): #0 0x00007f1c9bbc3db0 in g_mutex_lock () at /usr/lib/libglib-2.0.so.0 #1 0x00007f1c9bb7e184 in g_main_context_check () at /usr/lib/libglib-2.0.so.0 #2 0x00007f1c9bb7e724 in () at /usr/lib/libglib-2.0.so.0 #3 0x00007f1c9bb7e89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #4 0x00007f1ca4a942db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007f1ca4a3dd3a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #6 0x00007f1ca4860063 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #7 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #8 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 12 (Thread 0x7f1baffff700 (LWP 17199)): #0 0x00007f1c9db9710f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f1ca4865bab in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f1c9900e1c0 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f1c99012988 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f1c9900d263 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f1c990101f9 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #7 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 11 (Thread 0x7f1bb4ac1700 (LWP 17198)): #0 0x00007f1c9db9710f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f1ca4865bab in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f1c9900e1c0 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f1c99012988 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f1c9900d263 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f1c990101f9 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #7 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 10 (Thread 0x7f1c4bfff700 (LWP 17197)): #0 0x00007f1c9db9710f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f1ca4865bab in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f1c9900e1c0 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f1c99012988 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f1c9900d263 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f1c990101f9 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #7 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 9 (Thread 0x7f1c63504700 (LWP 17196)): #0 0x00007f1c9db9710f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f1ca4865bab in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f1c9900e1c0 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f1c99012988 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f1c9900d263 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f1c990101f9 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #7 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 8 (Thread 0x7f1c61c91700 (LWP 17195)): #0 0x00007f1c9db9710f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f1ca4865bab in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f1c9900e1c0 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f1c99012988 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f1c9900d263 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f1c990129e2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f1c9900d263 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007f1c990101f9 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #9 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 7 (Thread 0x7f1c62492700 (LWP 17114)): #0 0x00007f1c9bbc3db9 in g_mutex_lock () at /usr/lib/libglib-2.0.so.0 #1 0x00007f1c9bb7ded1 in g_main_context_query () at /usr/lib/libglib-2.0.so.0 #2 0x00007f1c9bb7e6f8 in () at /usr/lib/libglib-2.0.so.0 #3 0x00007f1c9bb7e89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #4 0x00007f1ca4a942db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007f1ca4a3dd3a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #6 0x00007f1ca4860063 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #7 0x00007f1c99c39e75 in () at /usr/lib/libQt5Qml.so.5 #8 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #9 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 6 (Thread 0x7f1c410d1700 (LWP 17105)): #0 0x00007f1ca417148d in poll () at /usr/lib/libc.so.6 #1 0x00007f1c9bb7e786 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007f1c9bb7e89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007f1ca4a942db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007f1ca4a3dd3a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007f1ca4860063 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007f1ca2394a1f in () at /usr/lib/libKDevPlatformLanguage.so.10 #7 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #8 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7f1c65c12700 (LWP 17104)): #0 0x00007f1c9db9710f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f1c95b331f4 in () at /usr/lib/libQt5Script.so.5 #2 0x00007f1c95b33239 in () at /usr/lib/libQt5Script.so.5 #3 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 4 (Thread 0x7f1c71b47700 (LWP 17103)): #0 0x00007f1c9db974b8 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f1ca4865ae6 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f1ca228a5b8 in () at /usr/lib/libKDevPlatformLanguage.so.10 #3 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #4 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #5 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7f1c7f708700 (LWP 17091)): #0 0x00007f1c9bb7b743 in () at /usr/lib/libglib-2.0.so.0 #1 0x00007f1c9bb7dc2b in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #2 0x00007f1c9bb7e6ab in () at /usr/lib/libglib-2.0.so.0 #3 0x00007f1c9bb7e89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #4 0x00007f1ca4a942db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007f1ca4a3dd3a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #6 0x00007f1ca4860063 in QThread::exec() () at /usr/lib/libQt5Core.so.5 #7 0x00007f1ca658bde5 in () at /usr/lib/libQt5DBus.so.5 #8 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #9 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7f1c84f5a700 (LWP 17090)): #0 0x00007f1ca417148d in poll () at /usr/lib/libc.so.6 #1 0x00007f1c942328e0 in () at /usr/lib/libxcb.so.1 #2 0x00007f1c94234679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1 #3 0x00007f1c86e9b789 in () at /usr/lib/libQt5XcbQpa.so.5 #4 0x00007f1ca4864cf8 in () at /usr/lib/libQt5Core.so.5 #5 0x00007f1c9db91454 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007f1ca417a7df in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7f1ca7373600 (LWP 17089)): [KCrash Handler] #6 0x00007f1ca59b19bb in () at /usr/lib/libQt5Widgets.so.5 #7 0x00007f1ca59b1be3 in () at /usr/lib/libQt5Widgets.so.5 #8 0x00007f1ca59a666a in QTreeViewPrivate::layout(int, bool, bool) () at /usr/lib/libQt5Widgets.so.5 #9 0x00007f1ca59af0a6 in QTreeView::doItemsLayout() () at /usr/lib/libQt5Widgets.so.5 #10 0x00007f1ca59a9173 in QTreeViewPrivate::updateScrollBars() () at /usr/lib/libQt5Widgets.so.5 #11 0x00007f1ca59b0b71 in QTreeView::updateGeometries() () at /usr/lib/libQt5Widgets.so.5 #12 0x00007f1ca5760e0e in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #13 0x00007f1ca5848e1e in QFrame::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #14 0x00007f1ca596fe83 in QAbstractItemView::viewportEvent(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #15 0x00007f1ca59af8dc in QTreeView::viewportEvent(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #16 0x00007f1ca4a3f641 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #17 0x00007f1ca5719335 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #18 0x00007f1ca5720ad1 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #19 0x00007f1ca4a3f8e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #20 0x00007f1ca57596d2 in QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) () at /usr/lib/libQt5Widgets.so.5 #21 0x00007f1ca575d553 in QWidgetPrivate::show_helper() () at /usr/lib/libQt5Widgets.so.5 #22 0x00007f1ca57603b5 in QWidget::setVisible(bool) () at /usr/lib/libQt5Widgets.so.5 #23 0x00007f1ca575d4e8 in QWidgetPrivate::showChildren(bool) () at /usr/lib/libQt5Widgets.so.5 #24 0x00007f1ca575d56f in QWidgetPrivate::show_helper() () at /usr/lib/libQt5Widgets.so.5 #25 0x00007f1ca57603b5 in QWidget::setVisible(bool) () at /usr/lib/libQt5Widgets.so.5 #26 0x00007f1ca575d4e8 in QWidgetPrivate::showChildren(bool) () at /usr/lib/libQt5Widgets.so.5 #27 0x00007f1ca575d56f in QWidgetPrivate::show_helper() () at /usr/lib/libQt5Widgets.so.5 #28 0x00007f1ca57603b5 in QWidget::setVisible(bool) () at /usr/lib/libQt5Widgets.so.5 #29 0x00007f1c68bb9472 in () at /usr/lib/qt/plugins/kdevplatform/27/kdevquickopen.so #30 0x00007f1ca576103f in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #31 0x00007f1ca585cb79 in QLineEdit::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #32 0x00007f1ca571935c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #33 0x00007f1ca5720ad1 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #34 0x00007f1ca4a3f8e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #35 0x00007f1ca571e64e in QApplicationPrivate::setFocusWidget(QWidget*, Qt::FocusReason) () at /usr/lib/libQt5Widgets.so.5 #36 0x00007f1ca575adb5 in QWidget::setFocus(Qt::FocusReason) () at /usr/lib/libQt5Widgets.so.5 #37 0x00007f1ca571990d in QApplicationPrivate::giveFocusAccordingToFocusPolicy(QWidget*, QEvent*, QPoint) () at /usr/lib/libQt5Widgets.so.5 #38 0x00007f1ca572274c in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #39 0x00007f1ca4a3f8e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #40 0x00007f1ca572003d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/libQt5Widgets.so.5 #41 0x00007f1ca577b0b6 in () at /usr/lib/libQt5Widgets.so.5 #42 0x00007f1ca577dac3 in () at /usr/lib/libQt5Widgets.so.5 #43 0x00007f1ca571935c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #44 0x00007f1ca5720ad1 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #45 0x00007f1ca4a3f8e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #46 0x00007f1ca4f85663 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5 #47 0x00007f1ca4f871e5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/libQt5Gui.so.5 #48 0x00007f1ca4f6515b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5 #49 0x00007f1c86ed1dc0 in () at /usr/lib/libQt5XcbQpa.so.5 #50 0x00007f1c9bb7e587 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #51 0x00007f1c9bb7e7f0 in () at /usr/lib/libglib-2.0.so.0 #52 0x00007f1c9bb7e89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #53 0x00007f1ca4a942bf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #54 0x00007f1ca4a3dd3a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #55 0x00007f1ca4a4623c in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5 #56 0x000000000040babc in () #57 0x00007f1ca40b2291 in __libc_start_main () at /usr/lib/libc.so.6 #58 0x000000000040c0fa in _start () Reported using DrKonqi
Could be related to https://phabricator.kde.org/D3673 -- could you try reverting & testing again?
I tried to revert 4f3e1fbbc, but it doesn't apply cleanly. There are still compilation errors after solving a few conflicts. So I built the commit before that (f00f30037), and tested. There's no crash. So I can confirm at least the bug was introduced between 4f3e1fbbc...7fa22b617(HEAD).
I did a bisect, seems ed9e1726c8c6c25b601da0893ecff8f9f9f47364 is the first bad commit. Maybe related to the cache of ProjectItemDataProvider::itemCount? Also, sometimes the crash was only triggered when opening a relative big project while background parsing just started running.
Could you try to nail down which commit it is? I've looked through ed9e1726c8c6c25b601da0893ecff8f9f9f47364 several times now, I can't see how that one can possibly break anything -- the cached value should never be out of date or non-dirty when itemCount() is called.
It's getting weirder. Mainly I tried on three commits (and a few others between ed9e1726c and 7fa22b617, the results were similar). + 2b44ef9f6, the commit right before ed9e1726c. Crash can't be triggered. + ed9e1726c, the first bad commit found by git bisect. I can reproduce the crash somethings + 7fa22b617, current master HEAD. Seems it's easier to trigger the crash than ed9e1726c By now, the most reliable way for me to trigger the crash is to quickly click on the line edit right after that main window shows, before the background parser fully starts. Here's the relevant log for the crash kdevplatform.plugins.quickopen: got focus kdevplatform.plugins.quickopen: old widget QWidget(0x0) force update: false kdevplatform.plugins.quickopen: created the widget create expanding tree kdevplatform.plugins.quickopen: params QSet("Files", "Functions", "Classes", "Documentation", "Actions") QSet("Project", "Currently Open", "Includes") kdevplatform.plugins.quickopen: comparing QSet("Currently Open") QSet("Files") kdevplatform.plugins.quickopen: enabling QSet("Files") QSet("Currently Open") kdevplatform.plugins.quickopen: comparing QSet("Project") QSet("Files") kdevplatform.plugins.quickopen: enabling QSet("Files") QSet("Project") kdevplatform.plugins.quickopen: comparing QSet("Project") QSet("Functions", "Classes") kdevplatform.plugins.quickopen: enabling QSet("Functions", "Classes") QSet("Project") kdevplatform.plugins.quickopen: comparing QSet("Includes") QSet("Documentation") kdevplatform.plugins.quickopen: enabling QSet("Documentation") QSet("Includes") kdevplatform.plugins.quickopen: comparing QSet("Includes") QSet("Actions") kdevplatform.plugins.quickopen: enabling QSet("Actions") QSet("Includes") kdevplatform.plugins.quickopen: activating kdevplatform.plugins.quickopen: eventFilter QChildEvent(ChildAdded, QObject(0x4b25390)) kdevplatform.plugins.quickopen: eventFilter QChildEvent(ChildAdded, QObject(0x4b27650)) kdevplatform.plugins.quickopen: before m_widget->show kdevplatform.plugins.quickopen: eventFilter QEvent(Polish, 0x7ffddd2a19e0) kdevplatform.plugins.quickopen: eventFilter QEvent(Polish, 0x7ffddd2a19e0) kdevplatform.plugins.quickopen: eventFilter QChildEvent(ChildPolished, QWidget(0x37650d0, name = "qt_scrollarea_viewport")) kdevplatform.plugins.quickopen: eventFilter QChildEvent(ChildPolished, QWidget(0x2072410, name = "qt_scrollarea_hcontainer")) kdevplatform.plugins.quickopen: eventFilter QChildEvent(ChildPolished, QWidget(0x240e860, name = "qt_scrollarea_vcontainer")) kdevplatform.plugins.quickopen: eventFilter QChildEvent(ChildPolished, QHeaderView(0x49f7ad0)) kdevplatform.plugins.quickopen: eventFilter QMoveEvent(2,2, non-spontaneous) kdevplatform.plugins.quickopen: eventFilter QResizeEvent(696, 323, non-spontaneous) KCrash: Application 'kdevelop' crashing...
(In reply to Aetf from comment #5) > + ed9e1726c, the first bad commit found by git bisect. I can reproduce the > crash somethings s/somethings/sometimes I added some debug log to the itemCount cachedResult method, but the crash happens even before that get called. Looking at the code, in QuickOpenLineEdit::focusInEvent in quickopenplugin.cpp, and only after the QuickOpenWidget is created for the first time, and is set to shown (crash at this line quickopenplugin.cpp:1055). I run out of idea what to looking at next...
The crash is happens if in the "Items" list we select "Functions" and/or "Classes". If such items are disabled I can't reproduce this annoying crashes. It seems the problem is in model class or/and in DUChain backend, which provide functions/classes information.
Git commit 0c10cf21ed8879019bec1c5eb277f5f37f2eb1d6 by Anton Anikin. Committed on 14/02/2017 at 08:17. Pushed by antonanikin into branch 'master'. Fix BUG 374894 - KDevelop crashes when clicking on QuickOpen Summary: The problem was in uninitialized value returned by `ResultCache::cachedResult()` which is called from `ProjectItemDataProvider::itemCount()` and `ProjectItemDataProvider::unfilteredItemCount()` methods. The crash happens only if uninitialized value is sufficiently big and `ResultCache::markDirty()` was not called before. Test Plan: Tested on master branch Reviewers: #kdevelop, kfunk Reviewed By: #kdevelop, kfunk Subscribers: brauch, kdevelop-devel Differential Revision: https://phabricator.kde.org/D4598 M +1 -1 plugins/quickopen/projectitemquickopen.h https://commits.kde.org/kdevplatform/0c10cf21ed8879019bec1c5eb277f5f37f2eb1d6