Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-82364

WASM application crashes due to failure in qFindChildren_helper

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P3: Somewhat important
    • None
    • 5.13.2
    • GUI: Window management
    • None
    • WASM, emsdk 1.38.47, Qt 5.13.2, latest FF nighly, Chrome Canary
    • WebAssembly

    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

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lpotter Lorn Potter
            imrenagy imrenagy
            Veli-Pekka Heinonen Veli-Pekka Heinonen
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes