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

qmlcachegen crashes in QQmlJSTypeResolver::adjustTrackedType

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 6.5.4, 6.5, 6.6.1, 6.7.0 FF
    • 6.6.0 Beta4
    • QML: Compiler
    • None
    • Fedora 38
      gcc (GCC) 13.2.1 20230728 (Red Hat 13.2.1-1)
    • d0c7f46b4 (dev), d5ab133e2 (6.6), f070c4523 (6.5)

    Description

      Building Elisa fails with the following console output:

       

      FAILED: src/.rcc/qmlcache/elisaqmlplugin_qml/ElisaMainWindow_qml.cpp /home/nico/kde/build/elisa/src/.rcc/qmlcache/elisaqmlplugin_qml/ElisaMainWindow_qml.cpp  
      cd /home/nico/kde/build/elisa/src && /usr/bin/cmake -E make_directory /home/nico/kde/build/elisa/src/.rcc/qmlcache/elisaqmlplugin_qml && /home/nico/kde/usr/libexec/qmlc
      achegen --bare --resource-path /qt/qml/org/kde/elisa/ElisaMainWindow.qml -I /home/nico/kde/build/elisa/bin/ -I /home/nico/kde/usr/qml -i /home/nico/kde/build/elisa/bin/
      org/kde/elisa/qmldir --resource /home/nico/kde/build/elisa/src/.rcc/qmake_org_kde_elisa.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_0.qrc 
      --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_1.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_2.qrc --resource /home
      /nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_3.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_4.qrc --resource /home/nico/kde/build/
      elisa/src/.rcc/elisaqmlplugin_raw_qml_5.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_6.qrc --resource /home/nico/kde/build/elisa/src/.rcc/e
      lisaqmlplugin_raw_qml_7.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_8.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_ra
      w_qml_9.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_10.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_11.qrc --
      resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_12.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_13.qrc --resource /home
      /nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_14.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_15.qrc --resource /home/nico/kde/buil
      d/elisa/src/.rcc/elisaqmlplugin_raw_qml_16.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_17.qrc --resource /home/nico/kde/build/elisa/src/.r
      cc/elisaqmlplugin_raw_qml_18.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_19.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplu
      gin_raw_qml_20.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_21.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_22
      .qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_23.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_24.qrc --resourc
      e /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_25.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_26.qrc --resource /home/nico/k
      de/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_27.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_28.qrc --resource /home/nico/kde/build/elisa
      /src/.rcc/elisaqmlplugin_raw_qml_29.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_30.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elis
      aqmlplugin_raw_qml_31.qrc --resource /home/nico/kde/build/elisa/src/.rcc/elisaqmlplugin_raw_qml_32.qrc -o /home/nico/kde/build/elisa/src/.rcc/qmlcache/elisaqmlplugin_qm
      l/ElisaMainWindow_qml.cpp /home/nico/kde/src/elisa/src/qml/ElisaMainWindow.qml
      
      ninja: build stopped: subcommand failed.
      

       

       

      qmlcachegen crashes with the following backtrace:

       

      #0  0x00007fa4132a5ab4 in std::__exchange<QHashPrivate::Data<QHashPrivate::Node<QString, QQmlJSScope::JavaScriptIdentifier> >*, decltype(nullptr)>(QHashPrivate::Data<QH
      ashPrivate::Node<QString, QQmlJSScope::JavaScriptIdentifier> >*&, decltype(nullptr)&&) (__new_val=<optimized out>,  
          __obj=<error reading variable: Cannot access memory at address 0x0>) at /usr/include/c++/13/bits/move.h:152
      
      #1  std::exchange<QHashPrivate::Data<QHashPrivate::Node<QString, QQmlJSScope::JavaScriptIdentifier> >*, decltype(nullptr)>(QHashPrivate::Data<QHashPrivate::Node<QString
      , QQmlJSScope::JavaScriptIdentifier> >*&, decltype(nullptr)&&) (__new_val=<optimized out>, __obj=<error reading variable: Cannot access memory at address 0x0>)
      
          at /usr/include/c++/13/utility:100
      
      #2  QHash<QString, QQmlJSScope::JavaScriptIdentifier>::QHash (other=..., this=<synthetic pointer>) at /home/nico/workspace/qt6/qtbase/src/corelib/tools/qhash.h:872
      
      #3  QHash<QString, QQmlJSScope::JavaScriptIdentifier>::operator= (other=..., this=0x5646cfaf9830) at /home/nico/workspace/qt6/qtbase/src/corelib/tools/qhash.h:875
      
      #4  QQmlJSScope::operator= (this=0x5646cfaf9830) at /home/nico/workspace/qt6/qtdeclarative/src/qmlcompiler/qqmljsscope_p.h:104
      
      #5  0x00007fa4132b0104 in QQmlJSTypeResolver::adjustTrackedType (this=this@entry=0x7ffc38f3d5c8, tracked=..., conversions=...)
      
          at /home/nico/workspace/qt6/qtdeclarative/src/qmlcompiler/qqmljstyperesolver.cpp:547
      
      #6  0x00007fa4131ad625 in QQmlJSBasicBlocks::adjustTypes (this=this@entry=0x7ffc38f3bba0) at /home/nico/workspace/qt6/qtbase/src/corelib/tools/qarraydatapointer.h:113
      
      #7  0x00007fa4131ae84b in QQmlJSBasicBlocks::run (this=this@entry=0x7ffc38f3bba0, function=function@entry=0x7ffc38f3c6f0, annotations=...,  
          error=error@entry=0x7ffc38f3c5e0) at /home/nico/workspace/qt6/qtdeclarative/src/qmlcompiler/qqmljsbasicblocks.cpp:64
      
      #8  0x00007fa4131f264d in QQmlJSAotCompiler::doCompile (this=this@entry=0x7ffc38f3d5c0, context=context@entry=0x5646cfb29460, function=function@entry=0x7ffc38f3c6f0,  
          error=error@entry=0x7ffc38f3c5e0) at /home/nico/workspace/qt6/qtdeclarative/src/qmlcompiler/qqmljscompiler.cpp:788
      
      #9  0x00007fa4131f2b4a in QQmlJSAotCompiler::compileBinding (this=0x7ffc38f3d5c0, context=0x5646cfb29460, irBinding=..., astNode=<optimized out>)
      
          at /home/nico/workspace/qt6/qtdeclarative/src/qmlcompiler/qqmljscompiler.cpp:707
      
      #10 0x00007fa4131f5ab4 in operator() (bindingOrFunction=..., __closure=<synthetic pointer>)
      
          at /home/nico/workspace/qt6/qtdeclarative/src/qmlcompiler/qqmljscompiler.cpp:327
      
      #11 std::for_each<__gnu_cxx::__normal_iterator<BindingOrFunction*, std::vector<BindingOrFunction> >, qCompileQmlFile(QmlIR::Document&, const QString&, QQmlJSSaveFunctio
      n, QQmlJSAotCompiler*, QQmlJSCompileError*, bool, QV4::Compiler::CodegenWarningInterface*, const QString*)::<lambda(const BindingOrFunction&)> > (__f=..., __last=...,  
          __first=...) at /usr/include/c++/13/bits/stl_algo.h:3833
      
      #12 qCompileQmlFile(QmlIR::Document&, QString const&, std::function<bool (QV4::CompiledData::SaveableUnitPointer const&, QMap<int, QQmlJSAotFunction> const&, QString*)>
      , QQmlJSAotCompiler*, QQmlJSCompileError*, bool, QV4::Compiler::CodegenWarningInterface*, QString const*) (irDocument=..., inputFileName=..., saveFunction=...,  
          aotCompiler=aotCompiler@entry=0x7ffc38f3d5c0, error=error@entry=0x7ffc38f3d220, storeSourceLocation=<optimized out>, interface=<optimized out>,  
          fileContents=<optimized out>) at /home/nico/workspace/qt6/qtdeclarative/src/qmlcompiler/qqmljscompiler.cpp:270
      
      #13 0x00007fa4131f6843 in qCompileQmlFile(QString const&, std::function<bool (QV4::CompiledData::SaveableUnitPointer const&, QMap<int, QQmlJSAotFunction> const&, QStrin
      g*)>, QQmlJSAotCompiler*, QQmlJSCompileError*, bool, QV4::Compiler::CodegenWarningInterface*, QString const*) (inputFileName=..., saveFunction=...,  
          aotCompiler=aotCompiler@entry=0x7ffc38f3d5c0, error=error@entry=0x7ffc38f3d220, storeSourceLocation=storeSourceLocation@entry=true,  
          interface=interface@entry=0x5646ccf2f2c8 <QV4::Compiler::defaultCodegenWarningInterface()::iface>, fileContents=0x0)
      
          at /home/nico/workspace/qt6/qtdeclarative/src/qmlcompiler/qqmljscompiler.cpp:186
      
      #14 0x00005646ccf2443b in main (argc=<optimized out>, argv=<optimized out>) at /home/nico/workspace/qt6/qtdeclarative/tools/qmlcachegen/qmlcachegen.cpp:267
      

      The relevant QML file is https://invent.kde.org/multimedia/elisa/-/blob/0cfebd6e8ee1e3a7c75433f3bb2d3a61e6143769/src/qml/ElisaMainWindow.qml

      Qt is built from 6.6 branch. qtbase commit 5e2caca64efb48270f261c32969ec1224101d05d, qtdeclarative commit 778192769046f1b741137c876c737d7dcb121cd2

       

       

      Attachments

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

        Activity

          People

            ulherman Ulf Hermann
            nicolasfella Nicolas Fella
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes