Details
-
Bug
-
Resolution: Done
-
P2: Important
-
Qt Creator 3.2.0-beta1
-
None
-
919f26a488c76afea081d1d11948f30a6f90a1b3 817d02d11385a06e9b964cf7eef4004e112b66d8 329952f5ee792484bdb53141fcfb3dba15f05a60
Description
In these classes, a Qt::DirectConnection is created to signals of the C++ and QmlJs code models, respectively, and in the associated slots API functions from other plugins are called, e.g. ProjectExplorer::Project::files(). This is seriously wrong, as these functions are not thread-safe. Not surprisingly, crashes due to this code have been observed.
Unfortunately, the fix is not trivial, as a QueuedConnection also results in a crash, presumably because the TODO plugin calls back on the code models with the assumption that they are in the exact same state in which they emitted the signal.
Attachments
For Gerrit Dashboard: QTCREATORBUG-12556 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
88597,2 | Todo: Fix thread safety issue in CppTodoItemScanner | 3.2 | qt-creator/qt-creator | Status: MERGED | +2 | 0 |
88663,4 | qmljs: fix race condition in defaultVContext | 3.2 | qt-creator/qt-creator | Status: MERGED | +2 | 0 |
88693,3 | qmljs: fix race in qmljstodoitemsscanner | 3.2 | qt-creator/qt-creator | Status: MERGED | +2 | 0 |