Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.12.0
-
-
60f766f5c68fc33322c6d095d81b1856828b2b0b b6d0ed435d2d57359b6eafb2728c024eab0b1ece
Description
I was attempting to track down a memory issue that manifested in 5.12.0 in a very complex commercial QML application. Most of the stack traces ended up in QV4::MarkStack::drain. It seemed like running with QV4_MM_AGGRESSIVE_GC=1 and QT_LOGGING_RULES="qt.qml.gc.*=true" was a good way to rule out the engine.
It appears that running with QV4_MM_AGGRESSIVE_GC=1 causes a crash when the QQmlApplicationEngine is started with no parameters. I need to inject an import path into the engine, so running the parameter-based constructor is not an option.
These issues also appear in the mapviewer QML example. When running mapviewer with QT_LOGGING_RULES="qt.qml.gc.*=true", lost memory is always reported whenever garbage collection runs and the logging itself eventually causes a crash.
Attachments
For Gerrit Dashboard: QTBUG-74190 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
256987,4 | Scope intermediate values when allocating objects | 5.12 | qt/qtdeclarative | Status: MERGED | -2 | 0 |
257118,4 | Re-use existing IC when freezing properties | 5.12 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
257127,2 | Fix logging output for GC | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |