Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
5.15.19, 6.8.1
-
None
Description
QQmlDataBlob is a refcounted data structured used from the engine thread as well as from the type loader thread. Whichever of those drops the last reference will delete it.
The data blobs are linked to each other with "waitingFor" and "waitingOnMe" links. The "waitingFor" links are refcounted and therefore safe enough for this discussion. The "waitingOnMe" links are not refcounted to avoid reference cycles.
The dtor of QQmlDataBlob removes the blob to be deleted from all "waitingOnMe" lists of other blobs. This is inherently unsafe. Those lists may be read from on the other thread at the same time.
Attachments
Issue Links
- split from
-
QTBUG-128269 QQmlEngine destructor hangs on QQmlTypeLoader::invalidate
- Closed
Gerrit Reviews
For Gerrit Dashboard: QTBUG-131721 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
607499,6 | QtQml: Fix some type loader threading issues | dev | qt/qtdeclarative | Status: NEW | 0 | 0 |