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

qqmlpropertycache crash on ARM 32 bit hardware

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • P1: Critical
    • None
    • 5.9.3
    • None

    Description

      With the following trivial QML file I am getting the appended patch, however it just applies to only my ARM devices:

      ~# cat Test2.qml
      import QtQuick 2.3
      
      Rectangle {
          width: 100; height: 100
          color: "blue"
          gradient: null
      }
      

      Backtrace:

      ~# XDG_RUNTIME_DIR=/var/run gdb --args /usr/bin/qt5/qmlscene Test2.qml -platform wayland 
      GNU gdb (GDB) 7.11.0.20160511-git
      Copyright (C) 2016 Free Software Foundation, Inc.
      License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
      and "show warranty" for details.
      This GDB was configured as "arm-mel-linux-gnueabi".
      Type "show configuration" for configuration details.
      For bug reporting instructions, please see:
      <http://www.gnu.org/software/gdb/bugs/>.
      Find the GDB manual and other documentation resources online at:
      <http://www.gnu.org/software/gdb/documentation/>.
      For help, type "help".
      Type "apropos word" to search for commands related to "word"...
      Reading symbols from /usr/bin/qt5/qmlscene...Reading symbols from /usr/bin/qt5/.debug/qmlscene...done.
      done.
      (gdb) r
      Starting program: /usr/bin/qt5/qmlscene Test2.qml -platform wayland
      [Thread debugging using libthread_db enabled]
      Using host libthread_db library "/lib/libthread_db.so.1".
      Using Wayland-EGL
      wlpvr: PVR Services Initialised
      Non-blocking swap buffers not supported. Subsurface rendering can be affected.
      [New Thread 0xb2cb4440 (LWP 4568)]
      
      Thread 1 "qmlscene" received signal SIGSEGV, Segmentation fault.
      QQuickRectangle::qt_static_metacall (_o=0x79f00, _c=_c@entry=QMetaObject::WriteProperty, _id=1, _a=_a@entry=0xbefff808) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/build/src/quick/.moc/moc_qquickrectangle_p.cpp:577
      warning: Source file is more recent than executable.
      577             case 1: _t->setGradient(*reinterpret_cast< QQuickGradient**>(_v)); break;
      (gdb) bt
      #0  QQuickRectangle::qt_static_metacall (_o=0x79f00, _c=_c@entry=QMetaObject::WriteProperty, _id=1, _a=_a@entry=0xbefff808)
          at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/build/src/quick/.moc/moc_qquickrectangle_p.cpp:577
      #1  0xb6b73788 in QQmlPropertyData::writeProperty (flags=..., value=<optimized out>, target=<optimized out>, this=<optimized out>) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/git/src/qml/qml/qqmlpropertycache_p.h:320
      #2  QObjectPointerBinding::write (this=this@entry=0x79f60, result=..., isUndefined=<optimized out>, flags=...) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/git/src/qml/qml/qqmlbinding.cpp:566
      #3  0xb6b74d30 in QQmlNonbindingBinding::doUpdate (this=this@entry=0x79f60, watcher=..., flags=..., flags@entry=..., scope=...) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/git/src/qml/qml/qqmlbinding.cpp:210
      #4  0xb6b71f7c in QQmlBinding::update (this=0x79f60, flags=...) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/git/src/qml/qml/qqmlbinding.cpp:167
      #5  0xb6b7e60c in QQmlObjectCreator::finalize (this=0x6b3b8, interrupt=...) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/git/src/qml/qml/qqmlobjectcreator.cpp:1300
      #6  0xb6aefa80 in QQmlComponentPrivate::complete (enginePriv=0x517d0, state=0x79ab8) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/git/src/qml/qml/qqmlcomponent.cpp:914
      #7  0xb6aefbcc in QQmlComponentPrivate::completeCreate (this=0x79a58) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/git/src/qml/qml/qqmlcomponent.cpp:950
      #8  0xb6aef984 in QQmlComponent::create (this=0x79a48, context=0x79978) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/git/src/qml/qml/qqmlcomponent.cpp:769
      #9  0x00014c64 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/qtdeclarative/5.9.4+gitAUTOINC+317908e72a-r0.tisdk0/git/tools/qmlscene/main.cpp:578
      (gdb) list
      572             QQuickRectangle *_t = static_cast<QQuickRectangle *>(_o);
      573             Q_UNUSED(_t)
      574             void *_v = _a[0];
      575             switch (_id) {
      576             case 0: _t->setColor(*reinterpret_cast< QColor*>(_v)); break;
      577             case 1: _t->setGradient(*reinterpret_cast< QQuickGradient**>(_v)); break;
      578             case 3: _t->setRadius(*reinterpret_cast< qreal*>(_v)); break;
      579             default: break;
      580             }
      581         } else if (_c == QMetaObject::ResetProperty) {
      (gdb) p _v
      $1 = (void *) 0x0
      

      Attachments

        1. qqmlbinding.o
          2.01 MB
          Andreas Cord-Landwehr
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            erikv Erik Verbruggen
            cordlandwehr Andreas Cord-Landwehr
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes