Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
Qt Creator 8.0.0
-
None
-
c865fe50f2 (qt-creator/qt-creator/master)
Description
Steps to reproduce:
1. Open creator project in Creator.
2. While project is being loaded, switch the session.
3. Observe long freeze.
Main thread (freezes for 75 seconds):
1 __futex_abstimed_wait_common 0x7ffff517673a 2 pthread_cond_wait * *GLIBC_2.3.2 0x7ffff5178eb0 3 QWaitConditionPrivate::wait qwaitcondition_unix.cpp 147 0x7ffff5a0c0fc 4 QWaitCondition::wait qwaitcondition_unix.cpp 220 0x7ffff5a0be0e 5 QFutureInterfaceBase::waitForFinished qfutureinterface.cpp 441 0x7ffff5a0e4f3 6 QFuture<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>>::waitForFinished qfuture.h 137 0x7fffae245216 7 CMakeProjectManager::Internal::FileApiReader::stop fileapireader.cpp 171 0x7fffae240a7f 8 CMakeProjectManager::Internal::FileApiReader::~FileApiReader fileapireader.cpp 65 0x7fffae23f85a 9 CMakeProjectManager::Internal::CMakeBuildSystem::~CMakeBuildSystem cmakebuildsystem.cpp 216 0x7fffae113bb8 10 CMakeProjectManager::Internal::CMakeBuildSystem::~CMakeBuildSystem cmakebuildsystem.cpp 216 0x7fffae113c5c 11 CMakeProjectManager::CMakeBuildConfiguration::~CMakeBuildConfiguration cmakebuildconfiguration.cpp 1300 0x7fffae0df9fc 12 CMakeProjectManager::CMakeBuildConfiguration::~CMakeBuildConfiguration cmakebuildconfiguration.cpp 1301 0x7fffae0dfa6c 13 qDeleteAll<QList<ProjectExplorer::BuildConfiguration *>::const_iterator> qalgorithms.h 59 0x7fffc5763eee 14 qDeleteAll<QList<ProjectExplorer::BuildConfiguration *>> qalgorithms.h 67 0x7fffc5762cdb 15 ProjectExplorer::Target::~Target target.cpp 214 0x7fffc5759650 16 ProjectExplorer::Target::~Target target.cpp 217 0x7fffc57596c0 17 std::default_delete<ProjectExplorer::Target>::operator() unique_ptr.h 85 0x7fffc55f14a2 18 std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>>::~unique_ptr unique_ptr.h 361 0x7fffc55ed9e8 19 std::_Destroy<std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>>> stl_construct.h 151 0x7fffc55fa122 20 std::_Destroy_aux<false>::__destroy<std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>> *> stl_construct.h 163 0x7fffc55f7838 21 std::_Destroy<std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>> *> stl_construct.h 196 0x7fffc55f485f 22 std::_Destroy<std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>> *, std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>>> alloc_traits.h 854 0x7fffc55f0b8b 23 std::vector<std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>>>::~vector stl_vector.h 680 0x7fffc55ed02f 24 ProjectExplorer::ProjectPrivate::~ProjectPrivate project.cpp 213 0x7fffc55df6a8 25 ProjectExplorer::Project::~Project project.cpp 231 0x7fffc55dfa28 26 CMakeProjectManager::CMakeProject::~CMakeProject cmakeproject.cpp 67 0x7fffae19a9ee 27 CMakeProjectManager::CMakeProject::~CMakeProject cmakeproject.cpp 67 0x7fffae19aa0a 28 qDeleteAll<QList<ProjectExplorer::Project *>::const_iterator> qalgorithms.h 59 0x7fffc573a58a 29 qDeleteAll<QList<ProjectExplorer::Project *>> qalgorithms.h 67 0x7fffc5738f98 30 ProjectExplorer::SessionManager::removeProjects session.cpp 765 0x7fffc57302fc 31 ProjectExplorer::SessionManager::loadSession session.cpp 1113 0x7fffc5732eed 32 ProjectExplorer::ProjectExplorerPluginPrivate::setSession projectexplorer.cpp 4196 0x7fffc562b755 33 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QAction *>, void, void (ProjectExplorer::ProjectExplorerPluginPrivate:: *)(QAction *)>::call qobjectdefs_impl.h 152 0x7fffc5657fdc 34 QtPrivate::FunctionPointer<void (ProjectExplorer::ProjectExplorerPluginPrivate:: *)(QAction *)>::call<QtPrivate::List<QAction *>, void> qobjectdefs_impl.h 185 0x7fffc56538f8 35 QtPrivate::QSlotObject<void (ProjectExplorer::ProjectExplorerPluginPrivate:: *)(QAction *), QtPrivate::List<QAction *>, void>::impl qobjectdefs_impl.h 395 0x7fffc564ea1f 36 QtPrivate::QSlotObjectBase::call qobjectdefs_impl.h 375 0x7ffff57c8cc3 37 doActivate<false> qobject.cpp 3912 0x7ffff582fddf 38 QMetaObject::activate qobject.cpp 3972 0x7ffff5828737 39 QActionGroup::triggered moc_qactiongroup.cpp 266 0x7ffff62af1d1 40 QActionGroup::_q_actionTriggered qactiongroup.cpp 79 0x7ffff684acac 41 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (QActionGroup:: *)()>::call(void (QActionGroup:: *)(), QActionGroup *, void * *) qobjectdefs_impl.h 152 0x7ffff684da27 42 QtPrivate::FunctionPointer<void (QActionGroup:: *)()>::call<QtPrivate::List<>, void>(void (QActionGroup:: *)(), QActionGroup *, void * *) qobjectdefs_impl.h 185 0x7ffff684cf96 43 QtPrivate::QSlotObject<void (QActionGroup:: *)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void * *, bool *) qobjectdefs_impl.h 395 0x7ffff684c6e3 44 QtPrivate::QSlotObjectBase::call qobjectdefs_impl.h 375 0x7ffff57c8cc3 45 doActivate<false> qobject.cpp 3912 0x7ffff582fddf 46 QMetaObject::activate qobject.cpp 3972 0x7ffff5828737 47 QAction::triggered moc_qaction.cpp 421 0x7ffff6848e36 48 QAction::activate qaction.cpp 1132 0x7ffff68478a9 49 QMenuPrivate::activateCausedStack qmenu.cpp 1410 0x7ffff7145744 50 QMenuPrivate::activateAction qmenu.cpp 1487 0x7ffff7145b49 51 QMenu::mouseReleaseEvent qmenu.cpp 2991 0x7ffff714a70d 52 QWidget::event qwidget.cpp 8697 0x7ffff6f1502b 53 QMenu::event qmenu.cpp 3116 0x7ffff714b0c1 54 QApplicationPrivate::notify_helper qapplication.cpp 3409 0x7ffff6e9445a 55 QApplication::notify qapplication.cpp 2872 0x7ffff6e9223a 56 QCoreApplication::notifyInternal2 qcoreapplication.cpp 1067 0x7ffff57aaf76 57 QCoreApplication::sendSpontaneousEvent qcoreapplication.cpp 1487 0x7ffff57ab982 58 QApplicationPrivate::sendMouseEvent qapplication.cpp 2409 0x7ffff6e90bc4 59 QWidgetWindow::handleMouseEvent qwidgetwindow.cpp 575 0x7ffff6f43ea0 60 QWidgetWindow::event qwidgetwindow.cpp 295 0x7ffff6f42eea 61 QApplicationPrivate::notify_helper qapplication.cpp 3409 0x7ffff6e9445a 62 QApplication::notify qapplication.cpp 2767 0x7ffff6e91a03 63 QCoreApplication::notifyInternal2 qcoreapplication.cpp 1067 0x7ffff57aaf76 64 QCoreApplication::sendSpontaneousEvent qcoreapplication.cpp 1487 0x7ffff57ab982 65 QGuiApplicationPrivate::processMouseEvent qguiapplication.cpp 2260 0x7ffff63bb7fa 66 QGuiApplicationPrivate::processWindowSystemEvent qguiapplication.cpp 2011 0x7ffff63bac6b 67 QWindowSystemInterface::sendWindowSystemEvents qwindowsysteminterface.cpp 1166 0x7ffff6431303 68 xcbSourceDispatch qxcbeventdispatcher.cpp 93 0x7fffe3dc9e57 69 g_main_context_dispatch 0x7ffff245205f 70 g_main_context_iterate.constprop 0x7ffff24a72a8 71 g_main_context_iteration 0x7ffff244f853 72 QEventDispatcherGlib::processEvents qeventdispatcher_glib.cpp 429 0x7ffff5b1c580 73 QXcbGlibEventDispatcher::processEvents qxcbeventdispatcher.cpp 132 0x7fffe3dca094 74 QEventLoop::processEvents qeventloop.cpp 139 0x7ffff57bd3dd 75 QEventLoop::exec qeventloop.cpp 230 0x7ffff57bd70d 76 QCoreApplication::exec qcoreapplication.cpp 1382 0x7ffff57ab78d 77 QGuiApplication::exec qguiapplication.cpp 1874 0x7ffff63ba564 78 QApplication::exec qapplication.cpp 2617 0x7ffff6e913dd 79 main main.cpp 795 0x40e0fc
Working thread (freezes for 70 seconds):
1 QString::size qstring.h 410 0x7ffff56bdc56 2 stringList_contains<QStringView> qstringlist.cpp 321 0x7ffff5918bbb 3 QtPrivate::QStringList_contains qstringlist.cpp 352 0x7ffff5918106 4 QListSpecialMethods<QString>::contains qstringlist.h 157 0x7ffff7a57b39 5 Utils::MimeXMLProvider::addAllMimeTypeNames mimeprovider.cpp 996 0x7ffff7d046d8 6 Utils::MimeXMLProvider::addFileNameMatches mimeprovider.cpp 784 0x7ffff7d03012 7 Utils::MimeDatabasePrivate::findByFileName mimedatabase.cpp 249 0x7ffff7cebab9 8 Utils::MimeDatabasePrivate::mimeTypeForFileName mimedatabase.cpp 237 0x7ffff7ceb8da 9 Utils::MimeDatabase::mimeTypesForFileName mimedatabase.cpp 711 0x7ffff7cee120 10 Utils::mimeTypesForFileName mimeutils.cpp 80 0x7ffff7d1813b 11 (anonymous namespace)::generateRawProjectParts fileapidataextractor.cpp 404 0x7fffae1f3e1f 12 CMakeProjectManager::Internal::extractData fileapidataextractor.cpp 757 0x7fffae1f703b 13 operator() fileapireader.cpp 268 0x7fffae2412d9 14 Utils::Internal::runAsyncQFutureInterfaceDispatch<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(QFutureInterface<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>>&)>>(std::true_type, QFutureInterface<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>> &, struct {...} &&) runextensions.h 257 0x7fffae244742 15 Utils::Internal::runAsyncMemberDispatch<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(QFutureInterface<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>>&)>>(QFutureInterface<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>> &, struct {...} &&) runextensions.h 274 0x7fffae244702 16 Utils::Internal::runAsyncImpl<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(QFutureInterface<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>>&)>>(QFutureInterface<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>> &, struct {...} &&) runextensions.h 303 0x7fffae2446b7 17 Utils::Internal::AsyncJob<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(QFutureInterface<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>>&)>>::runHelper<0>(std::index_sequence) runextensions.h 372 0x7fffae244624 18 Utils::Internal::AsyncJob<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(QFutureInterface<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>>&)>>::run(void) runextensions.h 352 0x7fffae24455b 19 QThreadPoolThread::run qthreadpool.cpp 99 0x7ffff59ff86e 20 operator() qthread_unix.cpp 356 0x7ffff59f83ac 21 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void *)::<lambda()>>(struct {...} &&) qthread_unix.cpp 292 0x7ffff59f9304 22 QThreadPrivate::start qthread_unix.cpp 315 0x7ffff59f8446 23 start_thread 0x7ffff5179b1a 24 clone3 0x7ffff51fe650