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

Dynamically creating a View3D second time crashes

    XMLWordPrintable

Details

    • 3
    • 55596a475d7d49ab032acffdbf26935c08c7b022 (qt/qtquick3d/dev) 6ed123316900fcaea2c3b3cf05a8518b48cb2591 (qt/qtquick3d/6.1)
    • Qt Quick 3D - Week 45/46, Qt Quick 3D - 47/48, Qt Quick 3D - 2021 Week 11/12

    Description

      The attached example usually crashes with one of the three call stacks below when creating the view the second time, arranged in the order of most common to least common. Rarely it doesn't crash on the second create, but then it will do so on the third create.

      This issue causes node preview in QDS to crash the puppet.

      The pending fix: https://codereview.qt-project.org/c/qt/qtquick3d/+/319719 doesn't affect this issue.

      1 QObjectPrivate::addConnection qobject.cpp 322 0x7ffc26034af1 
      2 QObjectPrivate::connectImpl qobject.cpp 4960 0x7ffc26035853 
      3 QObject::connectImpl qobject.cpp 4888 0x7ffc2603297c 
      4 QObject::connect<void (__cdecl QQuick3DSceneManager:: *)(void),void (__cdecl QQuickItem:: *)(void)> qobject.h 235 0x7ffc2a5b9bf2 
      5 QQuick3DViewport::setImportScene qquick3dviewport.cpp 530 0x7ffc2a5b80fd 
      6 QQuick3DViewport::qt_static_metacall moc_qquick3dviewport_p.cpp 302 0x7ffc2a4722f3 
      7 QQuick3DViewport::qt_metacall moc_qquick3dviewport_p.cpp 360 0x7ffc2a47166a 
      8 QQmlVMEMetaObject::metaCall qqmlvmemetaobject.cpp 1042 0x7ffc298878c0 
      9 QMetaObject::metacall qmetaobject.cpp 313 0x7ffc259b2b61 
      10 QQmlPropertyData::writeProperty qqmlpropertydata_p.h 377 0x7ffc295b5fbc 
      11 QQmlPropertyPrivate::write qqmlproperty.cpp 1260 0x7ffc2975832b 
      12 QV4::QObjectWrapper::setProperty qv4qobjectwrapper.cpp 576 0x7ffc294442f3 
      13 QV4::QObjectWrapper::setQmlProperty qv4qobjectwrapper.cpp 447 0x7ffc29441b36 
      14 QV4::QObjectWrapper::virtualPut qv4qobjectwrapper.cpp 733 0x7ffc29444bd3 
      15 QV4::Object::put qv4object_p.h 318 0x7ffc290b5a51 
      16 QV4::Lookup::setterFallback qv4lookup.cpp 497 0x7ffc293f424f 
      17 QV4::Moth::VME::interpret qv4vme_moth.cpp 661 0x7ffc295246ce 
      18 QV4::Moth::VME::exec qv4vme_moth.cpp 471 0x7ffc295223d4 
      19 QV4::Function::call qv4function.cpp 70 0x7ffc293b6ad6 
      20 QQmlJavaScriptExpression::evaluate qqmljavascriptexpression.cpp 229 0x7ffc29694903 
      21 QQmlBoundSignalExpression::evaluate qqmlboundsignal.cpp 223 0x7ffc295b7158 
      22 QQmlBoundSignal_callback qqmlboundsignal.cpp 359 0x7ffc295b7a67 
      23 QQmlNotifier::emitNotify qqmlnotifier.cpp 105 0x7ffc29701289 
      24 QQmlData::signalEmitted qqmlengine.cpp 802 0x7ffc295fccc3 
      25 doActivate<0> qobject.cpp 3709 0x7ffc260406be 
      26 QMetaObject::activate qobject.cpp 3881 0x7ffc2602a4cc 
      27 QQmlTimer::triggered moc_qqmltimer_p.cpp 267 0x7ffc29932656 
      28 QQmlTimer::ticked qqmltimer.cpp 322 0x7ffc299329b3 
      29 QQmlTimer::event qqmltimer.cpp 334 0x7ffc299324b7 
      30 QCoreApplicationPrivate::notify_helper qcoreapplication.cpp 1201 0x7ffc2597ea06 
      31 doNotify qcoreapplication.cpp 1130 0x7ffc25980bd4 
      32 QCoreApplication::notify qcoreapplication.cpp 1117 0x7ffc2597b6d6 
      33 QGuiApplication::notify qguiapplication.cpp 1945 0x7ffc27b80513 
      34 QCoreApplication::notifyInternal2 qcoreapplication.cpp 1040 0x7ffc2597d245 
      35 QCoreApplication::sendEvent qcoreapplication.cpp 1436 0x7ffc2597ad67 
      36 QCoreApplicationPrivate::sendPostedEvents qcoreapplication.cpp 1794 0x7ffc2597f705 
      37 QEventDispatcherWin32::sendPostedEvents qeventdispatcher_win.cpp 1033 0x7ffc25d98a73 
      38 QWindowsGuiEventDispatcher::sendPostedEvents qwindowsguieventdispatcher.cpp 80 0x7ffc283435a9 
      39 QEventDispatcherWin32::processEvents qeventdispatcher_win.cpp 518 0x7ffc25d9667b 
      40 QWindowsGuiEventDispatcher::processEvents qwindowsguieventdispatcher.cpp 72 0x7ffc28343549 
      41 QEventLoop::processEvents qeventloop.cpp 140 0x7ffc259a8390 
      42 QEventLoop::exec qeventloop.cpp 232 0x7ffc259a8662 
      43 QCoreApplication::exec qcoreapplication.cpp 1348 0x7ffc2597aa55 
      44 QGuiApplication::exec qguiapplication.cpp 1877 0x7ffc27b80489 
      45 main main.cpp 42 0x7ff627492dec 
      46 WinMain qtentrypoint_win.cpp 97 0x7ff627497390 
      47 invoke_main exe_common.inl 107 0x7ff6274956f2 
      48 __scrt_common_main_seh exe_common.inl 288 0x7ff6274955de 
      49 __scrt_common_main exe_common.inl 331 0x7ff62749549e 
      50 WinMainCRTStartup exe_winmain.cpp 17 0x7ff627495789 
      51 BaseThreadInitThunk KERNEL32 0x7ffc8df27974 
      52 RtlUserThreadStart ntdll 0x7ffc90b9a271  
      1 std::_Atomic_storage<int,4>::load atomic 604 0x7ffc267e171f 
      2 QAtomicOps<int>::loadRelaxed<int> qatomic_cxx11.h 238 0x7ffc267d4b5a 
      3 QBasicAtomicInteger<int>::loadRelaxed qbasicatomic.h 103 0x7ffc267e185b 
      4 QArrayData::needsDetach qarraydata.h 107 0x7ffc267e1e7b 
      5 QArrayDataPointer<QSSGRenderableObjectHandle>::needsDetach qarraydatapointer.h 186 0x7ffc259c1f37 
      6 QList<QSSGRenderableObjectHandle>::clear qlist.h 292 0x7ffc259b8434 
      7 QSSGLayerRenderPreparationData::resetForFrame qssgrendererimpllayerrenderpreparationdata.cpp 1264 0x7ffc259979d1 
      8 QSSGLayerRenderData::resetForFrame qssgrendererimpllayerrenderdata_rhi.cpp 94 0x7ffc2597f178 
      9 QSSGRenderer::beginFrame qssgrenderer.cpp 235 0x7ffc259611ab 
      10 QSSGRenderContextInterface::beginFrame qssgrendercontextcore.cpp 172 0x7ffc2587edc5 
      11 QQuick3DSceneRenderer::rhiPrepare qquick3dscenerenderer.cpp 501 0x7ffc25d1a1de 
      12 QQuick3DSceneRenderer::renderToRhiTexture qquick3dscenerenderer.cpp 348 0x7ffc25d1921b 
      13 SGFramebufferObjectNode::render qquick3dscenerenderer.cpp 116 0x7ffc25d1d74f 
      14 SGFramebufferObjectNode::preprocess qquick3dscenerenderer.cpp 94 0x7ffc25d1d66f 
      15 QSGRenderer::preprocess qsgrenderer.cpp 271 0x7ffc27ba910f 
      16 QSGRenderer::renderScene qsgrenderer.cpp 175 0x7ffc27ba8973 
      17 QSGDefaultRenderContext::renderNextRhiFrame qsgdefaultrendercontext.cpp 212 0x7ffc27c08e53 
      18 QQuickWindowPrivate::renderSceneGraph qquickwindow.cpp 707 0x7ffc27aa8b62 
      19 QSGRenderThread::syncAndRender qsgthreadedrenderloop.cpp 788 0x7ffc27e901b8 
      20 QSGRenderThread::run qsgthreadedrenderloop.cpp 986 0x7ffc27e8f0d8 
      21 QThreadPrivate::start qthread_win.cpp 328 0x7ffc26def70a 
      22 BaseThreadInitThunk KERNEL32 0x7ffc8df27974 
      23 RtlUserThreadStart ntdll 0x7ffc90b9a271  
      1 QQuick3DSceneManager::updateBoundingBoxes qquick3dscenemanager.cpp 104 0x7ffc255e373d 
      2 QQuick3DSceneRenderer::synchronize qquick3dscenerenderer.cpp 567 0x7ffc255ea7fc 
      3 QQuick3DViewport::updatePaintNode qquick3dviewport.cpp 417 0x7ffc25617803 
      4 QQuickWindowPrivate::updateDirtyNode qquickwindow.cpp 3750 0x7ffc2918a74a 
      5 QQuickWindowPrivate::updateDirtyNodes qquickwindow.cpp 3496 0x7ffc29189409 
      6 QQuickWindowPrivate::syncSceneGraph qquickwindow.cpp 597 0x7ffc291880bd 
      7 QSGRenderThread::sync qsgthreadedrenderloop.cpp 603 0x7ffc29570954 
      8 QSGRenderThread::syncAndRender qsgthreadedrenderloop.cpp 742 0x7ffc2956ff66 
      9 QSGRenderThread::run qsgthreadedrenderloop.cpp 986 0x7ffc2956f0d8 
      10 QThreadPrivate::start qthread_win.cpp 328 0x7ffc26def70a 
      11 BaseThreadInitThunk KERNEL32 0x7ffc8df27974 
      12 RtlUserThreadStart ntdll 0x7ffc90b9a271  

      Attachments

        1. updated_test.zip
          3 kB
          Laszlo Agocs
        2. View3DDeleteTestQt6.zip
          4 kB
          Miikka Heikkinen

        Issue Links

          For Gerrit Dashboard: QTBUG-88320
          # Subject Branch Project Status CR V

          Activity

            People

              tvete Paul Olav Tvete
              e0348803 Miikka Heikkinen
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes