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

AllProjectsFilter and CurrentProjectFilter call functions that are not thread-safe from a non-GUI thread

    XMLWordPrintable

Details

    • 05c267673f43ecbb0ae4c44adc7d02a690435f8b

    Description

      Namely, the update() function does this when being called from a search thread. Here is an excerpt from an example stack trace:

          9  libQbsProjectManager.so 0x00007eff925c2b2c QbsProjectManager::Internal::QbsProject::files(ProjectExplorer::Project::FilesMode) const + 44
          10 libProjectExplorer.so   0x00007eff9cf54d88 ProjectExplorer::Internal::AllProjectsFilter::updateFiles() + 216
          11 libCore.so              0x00007effa539ff1b Core::BaseFileFilter::matchesFor(QFutureInterface<Core::LocatorFilterEntry>&, QString const&) + 75
          12 libCore.so              0x00007effa52c13d9 Core::Internal::runSearch(QFutureInterface<Core::LocatorFilterEntry>&, QList<Core::ILocatorFilter*>, QString) + 473
          13 libCore.so              0x00007effa52e405f QtConcurrent::StoredInterfaceFunctionCall2<Core::LocatorFilterEntry, void (*)(QFutureInterface<Core::LocatorFilterEntry>&, QList<Core::ILocatorFilter*>, QString), QList<Core::ILocatorFilter*>, QString>::run() + 79
      

      This one was caused by AllProjectsFilter. The CurrentProjectFilter class seems to have the same problem, judging from the code.

      Attachments

        For Gerrit Dashboard: QTCREATORBUG-12592
        # Subject Branch Project Status CR V

        Activity

          People

            con Eike Ziller
            kandeler Christian Kandeler
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes