Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.15
-
None
-
-
f286d11852 (qt/qt3d/dev) f286d11852 (qt/tqtc-qt3d/dev) c9bb0a3d1e (qt/tqtc-qt3d/5.15) 861464e5f8 (qt/qt3d/6.4) 3e53c69f58 (qt/tqtc-qt3d/6.2) 0b0fd45b50 (qt/qt3d/6.3) 0b0fd45b50 (qt/tqtc-qt3d/6.3) 861464e5f8 (qt/tqtc-qt3d/6.4) 861464e5f8 (qt/qt3d/6.4.0)
Description
Customer application is crashing when using Qt3D.
- I tested every Qt3D example and those work fine on the target device
- I enabled Qt3D logging with `export QT_LOGGING_RULES=Qt3D.*.debug=true`.
- This showed that the Scene itself is set up properly but app crashes when trying to render the first frame
- The crash started to occur when customer was switching from 5.12 to 5.15
- Customer is using 5.15.7 on the target hardware. The latest version of Qt3D for 5.15 is 5.15.9. There haven't been many changes since then.
However, identified a possible patch that might help: - dbe025fb6 ("CalcBoundingVolumeJob: don't rely on QChangeArbiter for extent changes", 2022-06-13)
- In Qt 5.14, KDAB introduced a new multithreading architecture https://www.kdab.com/qt-3d-one-too-many-threads/
- It is very likely that the bug was introduced here
- The crash also occurs when commenting out and disabling most of the scene. It always occurs when try to render the first frame (compare Qt3D_crash_log vs Qt3D_crash_log_without_sceneroot)
- The bug is most likely a race condition in the new thread architecture coupled with customer's app specific side conditions on Qt3D initialization
- QThreadPool::globalInstance() is used by some modules. I could be that there might occur some interferences, like with the GStreamer pipeline
- When I set the maximum number of threads from 16 to in 1 in VisualReportApplication.cpp (`QThreadPool::globalInstance()->setMaxThreadCount(16);`)
The application does not crash but is stuck visually, but reacts to touch events - Backtraces differ a bit each time the app crashes, but QChangeArbiter (from the new 5.14 Multithreading Architecture) is always involved:
Logs files and backtraces are attached.