Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.8
-
76ce5e479 (dev), f8cdbfc3a (6.8), 1faa47150 (6.8.0), 0abdcda8f (dev), 7f58f05a4 (dev), 5893b9851 (dev), b248d2818 (dev), 336f86daa (dev)
Description
The log seen in QTBUG-129052 proves that some compilation units sometimes survive the engine destruction performed as part of the test cleanup by the QtQuickTest. This shouldn't happen. When the (last) engine is gone, nothing should be able to hold on to any of its CUs anymore. The difficulty is in finding a reliable reproducer.
In particular, the AOT-compiled C++ code holds on to dynamic QMetaTypeInterface pointers from other compilation units that do get released. This is because we generate static variables of QMetaType into the C++ code. This leads to heap-use-after-free when the CU (or even only the AOT-compiled code) is re-used.
Attachments
Issue Links
- split from
-
QTBUG-129052 controls tests are flaky since https://codereview.qt-project.org/c/qt/qtdeclarative/+/589582
-
- Closed
-
For Gerrit Dashboard: QTBUG-129388 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
594303,4 | QmlCompiler: Do not cache composite metatypes in static members | dev | qt/qtdeclarative | Status: MERGED | +2 | +1 |
594697,2 | QmlCompiler: Do not cache composite metatypes in static members | 6.8 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
594745,2 | QmlCompiler: Do not cache composite metatypes in static members | 6.8.0 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
597017,4 | WIP: Refcount CUs using tokens | dev | qt/qtdeclarative | Status: ABANDONED | -2 | 0 |
597220,4 | QtQml: Delete cached value type instances earlier on shutdown | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
597224,3 | QtQml: Remove redundant freeUnusedTypesAndCaches() | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
597225,4 | QtQml: Remove base CU when clearing executable CU | dev | qt/qtdeclarative | Status: MERGED | +2 | +1 |
597561,6 | Reduce usage of CompiledObject in QQmlVMEMetaObject | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
597761,2 | QtQml: Keep property cache counts in sync with compiled object counts | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |