Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-26332

Deadlock in QmakeProjectManager on shutdown (Qt 6.2 build)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Not Evaluated
    • None
    • Qt Creator 6.0.0-beta1
    • None

    Description

      I had qtbase project loaded (qmake-based, Qt 5.15). The main thread:

      1  __futex_abstimed_wait_common64                                                                                                                                                                                                   0x7ffff52eca8a 
      2  pthread_cond_wait * *GLIBC_2.3.2                                                                                                                                                                                                 0x7ffff52e62c0 
      3  QWaitConditionPrivate::wait                                                                                                                                                                     qwaitcondition_unix.cpp     147  0x7ffff5a712c0 
      4  QWaitCondition::wait                                                                                                                                                                            qwaitcondition_unix.cpp     220  0x7ffff5a70fd2 
      5  QFutureInterfaceBase::waitForFinished                                                                                                                                                           qfutureinterface.cpp        441  0x7ffff5a736fb 
      6  QFutureWatcherBase::waitForFinished                                                                                                                                                             qfuturewatcher.cpp          420  0x7ffff5a776ef 
      7  QmakeProjectManager::QmakeProFile::~QmakeProFile                                                                                                                                                qmakeparsernodes.cpp        1187 0x7fffb7e9fa78 
      8  QmakeProjectManager::QmakeProFile::~QmakeProFile                                                                                                                                                qmakeparsernodes.cpp        1193 0x7fffb7e9fb8e 
      9  qDeleteAll<QList<QmakeProjectManager::QmakePriFile *>::const_iterator>                                                                                                                          qalgorithms.h               59   0x7fffb7eb3a11 
      10 qDeleteAll<QList<QmakeProjectManager::QmakePriFile *>>                                                                                                                                          qalgorithms.h               67   0x7fffb7eadc0a 
      11 QmakeProjectManager::QmakePriFile::~QmakePriFile                                                                                                                                                qmakeparsernodes.cpp        233  0x7fffb7e96ea7 
      12 QmakeProjectManager::QmakeProFile::~QmakeProFile                                                                                                                                                qmakeparsernodes.cpp        1193 0x7fffb7e9fb72 
      13 QmakeProjectManager::QmakeProFile::~QmakeProFile                                                                                                                                                qmakeparsernodes.cpp        1193 0x7fffb7e9fb8e 
      14 qDeleteAll<QList<QmakeProjectManager::QmakePriFile *>::const_iterator>                                                                                                                          qalgorithms.h               59   0x7fffb7eb3a11 
      15 qDeleteAll<QList<QmakeProjectManager::QmakePriFile *>>                                                                                                                                          qalgorithms.h               67   0x7fffb7eadc0a 
      16 QmakeProjectManager::QmakePriFile::~QmakePriFile                                                                                                                                                qmakeparsernodes.cpp        233  0x7fffb7e96ea7 
      17 QmakeProjectManager::QmakeProFile::~QmakeProFile                                                                                                                                                qmakeparsernodes.cpp        1193 0x7fffb7e9fb72 
      18 QmakeProjectManager::QmakeProFile::~QmakeProFile                                                                                                                                                qmakeparsernodes.cpp        1193 0x7fffb7e9fb8e 
      19 std::default_delete<QmakeProjectManager::QmakeProFile>::operator()                                                                                                                              unique_ptr.h                85   0x7fffb7ef0a96 
      20 std::__uniq_ptr_impl<QmakeProjectManager::QmakeProFile, std::default_delete<QmakeProjectManager::QmakeProFile>>::reset                                                                          unique_ptr.h                182  0x7fffb7ef0cce 
      21 std::unique_ptr<QmakeProjectManager::QmakeProFile, std::default_delete<QmakeProjectManager::QmakeProFile>>::reset                                                                               unique_ptr.h                456  0x7fffb7eeded9 
      22 QmakeProjectManager::QmakeBuildSystem::~QmakeBuildSystem                                                                                                                                        qmakeproject.cpp            276  0x7fffb7edb81d 
      23 QmakeProjectManager::QmakeBuildSystem::~QmakeBuildSystem                                                                                                                                        qmakeproject.cpp            292  0x7fffb7edb9be 
      24 QmakeProjectManager::QmakeBuildConfiguration::~QmakeBuildConfiguration                                                                                                                          qmakebuildconfiguration.cpp 215  0x7fffb7e56915 
      25 QmakeProjectManager::QmakeBuildConfiguration::~QmakeBuildConfiguration                                                                                                                          qmakebuildconfiguration.cpp 216  0x7fffb7e5694e 
      26 qDeleteAll<QList<ProjectExplorer::BuildConfiguration *>::const_iterator>                                                                                                                        qalgorithms.h               59   0x7fffd88995a6 
      27 qDeleteAll<QList<ProjectExplorer::BuildConfiguration *>>                                                                                                                                        qalgorithms.h               67   0x7fffd889835f 
      28 ProjectExplorer::Target::~Target                                                                                                                                                                target.cpp                  214  0x7fffd888ef9a 
      29 ProjectExplorer::Target::~Target                                                                                                                                                                target.cpp                  217  0x7fffd888f00a 
      30 std::default_delete<ProjectExplorer::Target>::operator()                                                                                                                                        unique_ptr.h                85   0x7fffd873292c 
      31 std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>>::~unique_ptr                                                                                             unique_ptr.h                361  0x7fffd872ef92 
      32 std::_Destroy<std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>>>                                                                                           stl_construct.h             140  0x7fffd873b380 
      33 std::_Destroy_aux<false>::__destroy<std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>> *>                                                                   stl_construct.h             152  0x7fffd8738ad8 
      34 std::_Destroy<std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>> *>                                                                                         stl_construct.h             185  0x7fffd8735b77 
      35 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              746  0x7fffd8731fc3 
      36 std::vector<std::unique_ptr<ProjectExplorer::Target, std::default_delete<ProjectExplorer::Target>>>::~vector                                                                                    stl_vector.h                680  0x7fffd872e633 
      37 ProjectExplorer::ProjectPrivate::~ProjectPrivate                                                                                                                                                project.cpp                 213  0x7fffd872104a 
      38 ProjectExplorer::Project::~Project                                                                                                                                                              project.cpp                 231  0x7fffd87213b6 
      39 QmakeProjectManager::QmakeProject::~QmakeProject                                                                                                                                                qmakeproject.cpp            189  0x7fffb7edacf1 
      40 QmakeProjectManager::QmakeProject::~QmakeProject                                                                                                                                                qmakeproject.cpp            189  0x7fffb7edad10 
      41 qDeleteAll<QList<ProjectExplorer::Project *>::const_iterator>                                                                                                                                   qalgorithms.h               59   0x7fffd8871290 
      42 qDeleteAll<QList<ProjectExplorer::Project *>>                                                                                                                                                   qalgorithms.h               67   0x7fffd886fe00 
      43 ProjectExplorer::SessionManager::removeProjects                                                                                                                                                 session.cpp                 761  0x7fffd8867554 
      44 ProjectExplorer::SessionManager::closeAllProjects                                                                                                                                               session.cpp                 559  0x7fffd8865c95 
      45 ProjectExplorer::ProjectExplorerPlugin::aboutToShutdown                                                                                                                                         projectexplorer.cpp         2205 0x7fffd875c4ab 
      46 ExtensionSystem::Internal::PluginSpecPrivate::stop                                                                                                                                              pluginspec.cpp              1114 0x7ffff7f810d8 
      47 ExtensionSystem::Internal::PluginManagerPrivate::loadPlugin                                                                                                                                     pluginmanager.cpp           1644 0x7ffff7f55805 
      48 ExtensionSystem::Internal::PluginManagerPrivate::stopAll                                                                                                                                        pluginmanager.cpp           1057 0x7ffff7f51765 
      49 ExtensionSystem::Internal::PluginManagerPrivate::shutdown                                                                                                                                       pluginmanager.cpp           1394 0x7ffff7f53b04 
      50 ExtensionSystem::PluginManager::shutdown                                                                                                                                                        pluginmanager.cpp           409  0x7ffff7f4d297 
      51 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void ( *)()>::call(void ( *&)(), void * *)                                                                            qobjectdefs_impl.h          146  0x41ad16       
      52 QtPrivate::FunctionPointer<void ( *)()>::call<QtPrivate::List<>, void>(void ( *)(), void *, void * *)                                                                                           qobjectdefs_impl.h          209  0x4195cf       
      53 QtPrivate::QStaticSlotObject<void ( *)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void * *, bool *)                                                        qobject_impl.h              90   0x417dcc       
      54 QtPrivate::QSlotObjectBase::call                                                                                                                                                                qobjectdefs_impl.h          375  0x7ffff5832c91 
      55 doActivate<false>                                                                                                                                                                               qobject.cpp                 3904 0x7ffff5898443 
      56 QMetaObject::activate                                                                                                                                                                           qobject.cpp                 3964 0x7ffff5890da9 
      57 QCoreApplication::aboutToQuit                                                                                                                                                                   moc_qcoreapplication.cpp    252  0x7ffff58197b1 
      58 QCoreApplicationPrivate::execCleanup                                                                                                                                                            qcoreapplication.cpp        1398 0x7ffff58154fe 
      59 QCoreApplication::exec                                                                                                                                                                          qcoreapplication.cpp        1382 0x7ffff5815476 
      60 QGuiApplication::exec                                                                                                                                                                           qguiapplication.cpp         1860 0x7ffff6417bc6 
      61 QApplication::exec                                                                                                                                                                              qapplication.cpp            2610 0x7ffff6f2930f 
      62 main                                                                                                                                                                                            main.cpp                    766  0x40e06f       
      

      7 other threads are identical, waiting for the mutex:

      (...)
      6  QMutexLocker<QMutex>::QMutexLocker                                                                                                                                                                                                                                                                                                                           qmutex.h             245  0x7fffcd1cff93 
      7  QMakeParser::parsedProFile                                                                                                                                                                                                                                                                                                                                   qmakeparser.cpp      190  0x7fffcd203579 
      8  QMakeEvaluator::evaluateFile                                                                                                                                                                                                                                                                                                                                 qmakeevaluator.cpp   1934 0x7fffcd1f0254 
      9  QMakeEvaluator::evaluateFeatureFile                                                                                                                                                                                                                                                                                                                          qmakeevaluator.cpp   2049 0x7fffcd1f0e04
      (...)
      

      And 8th thread is waiting for a wait condition:

      1  __pthread_mutex_lock_full                                                                                                                                                                                                                                                                                                                                                                 0x7ffff52e216f 
      2  QWaitCondition::wait                                                                                                                                                                                                                                                                                                                                         qwaitcondition_unix.cpp 216  0x7ffff5a70f7f 
      3  QMakeParser::parsedProFile                                                                                                                                                                                                                                                                                                                                   qmakeparser.cpp         199  0x7fffcd203670 
      4  QMakeEvaluator::evaluateFile                                                                                                                                                                                                                                                                                                                                 qmakeevaluator.cpp      1934 0x7fffcd1f0254 
      5  QMakeEvaluator::evaluateFileChecked                                                                                                                                                                                                                                                                                                                          qmakeevaluator.cpp      1964 0x7fffcd1f0617 
      6  QMakeEvaluator::evaluateBuiltinConditional                                                                                                                                                                                                                                                                                                                   qmakebuiltins.cpp       1713 0x7fffcd1c9f6c 
      7  QMakeEvaluator::evaluateConditionalFunction                                                                                                                                                                                                                                                                                                                  qmakeevaluator.cpp      1770 0x7fffcd1ef458 
      8  QMakeEvaluator::visitProBlock                                                                                                                                                                                                                                                                                                                                qmakeevaluator.cpp      671  0x7fffcd1e6a96 
      9  QMakeEvaluator::visitProBlock                                                                                                                                                                                                                                                                                                                                qmakeevaluator.cpp      515  0x7fffcd1e5e5d 
      10 QMakeEvaluator::visitProFile                                                                                                                                                                                                                                                                                                                                 qmakeevaluator.cpp      1457 0x7fffcd1ec49d 
      11 ProFileEvaluator::accept                                                                                                                                                                                                                                                                                                                                     profileevaluator.cpp    244  0x7fffcd1992ec 
      12 evaluateOne                                                                                                                                                                                                                                                                                                                                                  qmakeparsernodes.cpp    1342 0x7fffb7ea099f 
      13 QmakeProjectManager::QmakeProFile::evaluate                                                                                                                                                                                                                                                                                                                  qmakeparsernodes.cpp    1386 0x7fffb7ea11ab 
      14 QmakeProjectManager::QmakeProFile::asyncEvaluate                                                                                                                                                                                                                                                                                                             qmakeparsernodes.cpp    1640 0x7fffb7ea53ee 
      (...)
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              kandeler Christian Kandeler
              jkobus Jarek Kobus
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes