Priority: P1: Critical
Affects Version/s: 5.9.2
Environment:Arch Linux, Qt 5.9.1 and 5.9.2 build from source (behavior is identical for official builds). Qt Creator 4.4.1
Upgraded my build environment from 5.9.1 -> 5.9.2, and now the application does not start any more. The application is the open source project Subsurface Divelog (https://github.com/Subsurface-divelog/). This is a mix of C, C++, Qt and for the mobile version a QML based UI.
The mobile version (that can be build and run on desktop as well) does load a main.qml file in its very early stages of execution:
The engine.load() call does not produce any output, but fails silently, without any valid result.
Before this load() call, there are numerous qmlRegisterType() calls, and maximum 2 qmlRegisterSingletonType() calls. Temporarily disabling the qmlRegisterSingletonType() calls restores the engine.load() call, in such a way that numerous QML errors are reported. Obliviously, that version does not run at all due to the disabled singletons, but the engine.load() returns with a valid response. My suspicion went towards singleton handling in QML/C++ context.
I found commit 98358715930739ca8de172d88c5ce6941c275ff3 (https://codereview.qt-project.org/#/c/205260/) in qtdeclarative. Reverted that, and the application is running again, but now with 5.9.2 instead of 5.9.1. Revering it, is obviously no valid solution, but shows the strong relation to the problem at hand.
|For Gerrit Dashboard: QTBUG-64017|
|209990,3||Prevent the QML engine from registering circular dependencies||5.9||qt/qtdeclarative||Status: MERGED||+2||0|
|209993,1||Prevent the QML engine from registering circular dependencies||wip/new-backend||qt/qtdeclarative||Status: ABANDONED||0||0|
|222749,2||Fix circular dependency handling for composite singletons||5.11||qt/qtdeclarative||Status: ABANDONED||-2||0|