Details
-
Bug
-
Resolution: Invalid
-
P3: Somewhat important
-
None
-
5.13.2
-
None
-
WASM, emsdk 1.38.47, Qt 5.13.2, latest FF nighly, Chrome Canary
Description
We are developing a multi-threaded application with Qt on WebAssembly platform.
In the last weeks we are experiencing an issue that completly hangs the application when running. This happens around 80% of the application start/restart under FireFox Nightly, FF 70.0, Chrome and Edge.
I could not pinpoint the exact location in time when the crash happens, since its position is moving related to other loglines and function calls.
What is sure, that every time (and that is frequently), it happens, it rarely touches any non-Qt code parts. The callstack shows that this is triggered from browser event, and the crash is almost always occures related to resize/setGeometry related event handling, when the MainWindow is looking for it direct chilldren.
I assume that this happens because the MetaObject from a child of MainWindow is not set, or in the progress of being created when the qFindChildren's internal code tries to cast that to gain information about it.
I provide the callstack here. Other callstack are also available, but there are no or little variation about how they reach the qFindChildren_helper.
abort http://wintermute:9182/WASM/qtloader.js line 443 > eval:1453
b8
http://wintermute:9182/WASM/app.wasm:22497289
__ZNK11QMetaObject4castEPK7QObject http://wintermute:9182/WASM/app.wasm:21323203
__ZNK11QMetaObject4castEP7QObject http://wintermute:9182/WASM/app.wasm:21323168
__Z23qt_qFindChildren_helperPK7QObjectRK7QStringRK11QMetaObjectP5QListIPvE6QFlagsIN2Qt15FindChildOptionEE http://wintermute:9182/WASM/app.wasm:21381023
__ZN17QMainWindowLayout10applyStateER22QMainWindowLayoutStateb http://wintermute:9182/WASM/app.wasm:15685658
__ZN17QMainWindowLayout11setGeometryERK5QRect http://wintermute:9182/WASM/app.wasm:15683578
__ZN14QLayoutPrivate8doResizeERK5QSize http://wintermute:9182/WASM/app.wasm:14684633
__ZN7QLayout8activateEv http://wintermute:9182/WASM/app.wasm:14686155
__ZN7QLayout11widgetEventEP6QEvent http://wintermute:9182/WASM/app.wasm:14685178
__ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent http://wintermute:9182/WASM/app.wasm:14620372
__ZN12QApplication6notifyEP7QObjectP6QEvent http://wintermute:9182/WASM/app.wasm:14619600
__ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent http://wintermute:9182/WASM/app.wasm:21312100
__ZN16QCoreApplication9sendEventEP7QObjectP6QEvent http://wintermute:9182/WASM/app.wasm:21313871
__ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData http://wintermute:9182/WASM/app.wasm:21313602
__ZN20QEventDispatcherUNIX13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE http://wintermute:9182/WASM/app.wasm:21463981
__ZN23QUnixEventDispatcherQPA13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE http://wintermute:9182/WASM/app.wasm:13872007
_ZZN20QWasmEventDispatcher16doMaintainTimersEvEN318_invokeEPv http://wintermute:9182/WASM/app.wasm:13842019
dynCall_vi http://wintermute:9182/WASM/app.wasm:22496103
dynCall_vi http://wintermute:9182/WASM/qtloader.js line 443 > eval:15869
dynCall http://wintermute:9182/WASM/qtloader.js line 443 > eval:496
dynCall_wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:477
wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:9314
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9013
(Async: setTimeout handler)
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9010
_emscripten_async_call http://wintermute:9182/WASM/qtloader.js line 443 > eval:9318
__ZN20QWasmEventDispatcher16doMaintainTimersEv http://wintermute:9182/WASM/app.wasm:13841855
_ZZN20QWasmEventDispatcher16doMaintainTimersEvEN318_invokeEPv http://wintermute:9182/WASM/app.wasm:13842026
dynCall_vi http://wintermute:9182/WASM/app.wasm:22496103
dynCall_vi http://wintermute:9182/WASM/qtloader.js line 443 > eval:15869
dynCall http://wintermute:9182/WASM/qtloader.js line 443 > eval:496
dynCall_wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:477
wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:9314
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9013
(Async: setTimeout handler)
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9010
_emscripten_async_call http://wintermute:9182/WASM/qtloader.js line 443 > eval:9318
__ZN20QWasmEventDispatcher16doMaintainTimersEv http://wintermute:9182/WASM/app.wasm:13841855
_ZZN20QWasmEventDispatcher16doMaintainTimersEvEN318_invokeEPv http://wintermute:9182/WASM/app.wasm:13842026
dynCall_vi http://wintermute:9182/WASM/app.wasm:22496103
dynCall_vi http://wintermute:9182/WASM/qtloader.js line 443 > eval:15869
dynCall http://wintermute:9182/WASM/qtloader.js line 443 > eval:496
dynCall_wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:477
wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:9314
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9013
(Async: setTimeout handler)
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9010
_emscripten_async_call http://wintermute:9182/WASM/qtloader.js line 443 > eval:9318
__ZN20QWasmEventDispatcher16doMaintainTimersEv http://wintermute:9182/WASM/app.wasm:13841855
_ZZN20QWasmEventDispatcher16doMaintainTimersEvEN318_invokeEPv http://wintermute:9182/WASM/app.wasm:13842026
dynCall_vi http://wintermute:9182/WASM/app.wasm:22496103
dynCall_vi http://wintermute:9182/WASM/qtloader.js line 443 > eval:15869
dynCall http://wintermute:9182/WASM/qtloader.js line 443 > eval:496
dynCall_wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:477
wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:9314
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9013
(Async: setTimeout handler)
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9010
_emscripten_async_call http://wintermute:9182/WASM/qtloader.js line 443 > eval:9318
__ZN20QWasmEventDispatcher16doMaintainTimersEv http://wintermute:9182/WASM/app.wasm:13841855
_ZZN20QWasmEventDispatcher16doMaintainTimersEvEN318_invokeEPv http://wintermute:9182/WASM/app.wasm:13842026
dynCall_vi http://wintermute:9182/WASM/app.wasm:22496103
dynCall_vi http://wintermute:9182/WASM/qtloader.js line 443 > eval:15869
dynCall http://wintermute:9182/WASM/qtloader.js line 443 > eval:496
dynCall_wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:477
wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:9314
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9013
(Async: setTimeout handler)
safeSetTimeout http://wintermute:9182/WASM/qtloader.js line 443 > eval:9010
_emscripten_async_call http://wintermute:9182/WASM/qtloader.js line 443 > eval:9318
__ZN20QWasmEventDispatcher16doMaintainTimersEv http://wintermute:9182/WASM/app.wasm:13841855
_ZZN20QWasmEventDispatcher16doMaintainTimersEvEN318_invokeEPv http://wintermute:9182/WASM/app.wasm:13842026
dynCall_vi http://wintermute:9182/WASM/app.wasm:22496103
dynCall_vi http://wintermute:9182/WASM/qtloader.js line 443 > eval:15869
dynCall http://wintermute:9182/WASM/qtloader.js line 443 > eval:496
dynCall_wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:477
wrapper http://wintermute:9182/WASM/qtloader.js line 443 > eval:9314
safeSetTimeout
Regards,
Imre, Nagy