Uploaded image for project: 'Qbs ("Cubes")'
  1. Qbs ("Cubes")
  2. QBS-863

qbs::Internal::TestLanguage::erroneousFiles(properties-item-with-invalid-condition) failure

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 1.4.3
    • 1.4.2
    • General
    • None
    • Debian GNU/Linux unstable. All architectures except x86 and s390x seem to be affected.
    • 6bf4836f381ece4156e539d8bfe911ca7a79d7a3

    Description

      When trying to run the qbs 1.4.2's testsuite, I get this on some architectures:

      terminate called after throwing an instance of 'qbs::ErrorInfo'
      
      #0  0x00003fffb72c0978 in raise () from /lib/powerpc64le-linux-gnu/libc.so.6
      #1  0x00003fffb72c2cac in abort () from /lib/powerpc64le-linux-gnu/libc.so.6
      #2  0x00003fffb752bc24 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/powerpc64le-linux-gnu/libstdc++.so.6
      #3  0x00003fffb75285c4 in ?? () from /usr/lib/powerpc64le-linux-gnu/libstdc++.so.6
      #4  0x00003fffb7528680 in std::terminate() () from /usr/lib/powerpc64le-linux-gnu/libstdc++.so.6
      #5  0x00003fffb7528ac4 in __cxa_throw () from /usr/lib/powerpc64le-linux-gnu/libstdc++.so.6
      #6  0x00003fffb7de6f1c in qbs::Internal::Evaluator::handleEvaluationError (this=<optimized out>, item=<optimized out>, name=..., scriptValue=...)
          at language/evaluator.cpp:185
      #7  0x00003fffb7deac24 in qbs::Internal::EvaluatorScriptClass::collectValuesFromNextChain (this=0x100bf230, data=0x100aaed0, result=0x3fffffffd150, 
          propertyName=..., value=...) at language/evaluatorscriptclass.cpp:376
      #8  0x00003fffb7deb728 in qbs::Internal::EvaluatorScriptClass::property (this=0x100bf230, object=..., name=..., id=<optimized out>)
          at language/evaluatorscriptclass.cpp:501
      #9  0x00003fffb71e33f0 in QScript::ClassObjectDelegate::getOwnPropertySlot (this=<optimized out>, object=<optimized out>, exec=<optimized out>, 
          propertyName=..., slot=...) at bridge/qscriptclassobject.cpp:80
      #10 0x00003fffb71e0e84 in QScriptObject::getOwnPropertySlot (this=0x3fffb2d4c9c0, exec=<optimized out>, propertyName=..., slot=...)
          at bridge/qscriptobject.cpp:61
      #11 0x00003fffb71d4428 in fastGetOwnPropertySlot (slot=..., propertyName=..., exec=<optimized out>, this=0x3fffb2d4c9c0)
          at ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSObject.h:382
      #12 getPropertySlot (slot=..., propertyName=..., exec=<optimized out>, this=<optimized out>)
          at ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSObject.h:391
      #13 property (resolveMode=1, id=..., value=..., exec=0x3fffb2f00048) at api/qscriptengine_p.h:741
      #14 property (this=<optimized out>, this=<optimized out>, resolveMode=..., name=...) at api/qscriptengine_p.h:782
      #15 QScriptValue::property (this=<optimized out>, name=..., mode=...) at api/qscriptvalue.cpp:1391
      #16 0x00003fffb7de62bc in qbs::Internal::Evaluator::property (this=<optimized out>, item=<optimized out>, name=...) at language/evaluator.cpp:73
      #17 0x00003fffb7e50384 in qbs::Internal::ProjectResolver::evaluateProperties (this=0x3fffffffe178, item=0x10070d40, propertiesContainer=0x10070d40, 
          tmplt=..., lookupPrototype=<optimized out>) at language/projectresolver.cpp:1034
      #18 0x00003fffb7e50abc in qbs::Internal::ProjectResolver::evaluateProperties (this=0x3fffffffe178, item=<optimized out>, lookupPrototype=true)
          at language/projectresolver.cpp:1005
      #19 0x00003fffb7e50cb0 in qbs::Internal::ProjectResolver::evaluateModuleValues (this=0x3fffffffe178, item=<optimized out>, lookupPrototype=true)
          at language/projectresolver.cpp:994
      #20 0x00003fffb7e51430 in qbs::Internal::ProjectResolver::createProductConfig (this=0x3fffffffe178) at language/projectresolver.cpp:1081
      #21 0x00003fffb7e5f0d0 in qbs::Internal::ProjectResolver::resolveProduct (this=0x3fffffffe178, item=0x10070b00, projectContext=0x3fffffffdfb0)
          at language/projectresolver.cpp:344
      #22 0x00003fffb7e55670 in qbs::Internal::ProjectResolver::callItemFunction (this=0x3fffffffe178, mappings=..., item=0x10070b00, 
          projectContext=0x3fffffffdfb0) at language/projectresolver.cpp:1111
      #23 0x00003fffb7e587b0 in qbs::Internal::ProjectResolver::resolveProject (this=0x3fffffffe178, item=0x10070dd0, projectContext=0x3fffffffdfb0)
          at language/projectresolver.cpp:264
      #24 0x00003fffb7e5cca4 in qbs::Internal::ProjectResolver::resolveTopLevelProject (this=0x3fffffffe178, item=0x10070dd0, 
          projectContext=0x3fffffffdfb0) at language/projectresolver.cpp:198
      #25 0x00003fffb7e5d6bc in qbs::Internal::ProjectResolver::resolve (this=0x3fffffffe178, loadResult=..., setupParameters=...)
          at language/projectresolver.cpp:120
      #26 0x00003fffb7e2c720 in qbs::Internal::Loader::loadProject (this=0x1005ac60, parameters=...) at language/loader.cpp:113
      #27 0x00003fffb7e7fcb4 in qbs::Internal::TestLanguage::erroneousFiles (this=0x3ffffffff118) at language/tst_language.cpp:506
      

      Looks like it throws ErrorInfo instead of handling it properly. Here is the code in handleEvaluationError function in language/evaluator.cpp that throws the exception:

      183	    if (m_scriptEngine->hasUncaughtException()) {
      184	        throw ErrorInfo(m_scriptEngine->uncaughtException().toString(),
      185	                CodeLocation(location.filePath(), m_scriptEngine->uncaughtExceptionLineNumber()));
      186	    }
      

      This is called from collectValuesFromNextChain in language/evaluatorscriptclass.cpp:

      375	        QScriptValue v = data->evaluator->property(next->definingItem(), propertyName);
      376	        data->evaluator->handleEvaluationError(next->definingItem(), propertyName, v);
      

      where propertyName is "defines".

      The build logs are available here.

      Attachments

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

        Activity

          People

            kandeler Christian Kandeler
            mandriver Dmitry Shachnev
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes