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

Segfault in ~QQmlOpenMetaObject in a simple testcase when unloading ListModel

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P1: Critical
    • None
    • 5.9.1
    • None
    • Linux pc 4.12.2-1-ARCH #1 SMP PREEMPT Sat Jul 15 20:18:04 UTC 2017 x86_64 GNU/Linux

    Description

      Testcase:

      import QtQuick 2.3
      
      Item {
        Component {
          id: component
          Item {
            property ListModel entries: ListModel {}
            property bool show: false
            Item {
              //onTestChanged: console.log(test) // Uncommenting this magically unbreaks things
              property var test: show ? entries.get(0) : {}
              property string foo: test.d || ''
            }
            Component.onCompleted:  {
              entries.append({"a":{"b":"c"},"d":"e"})
              show = true
            }
          }
        }
        Loader {
          active: true
          id: loader
          sourceComponent: component
        }
        Timer {
          interval: 100
          running: true
          onTriggered: loader.active = false
        }
      }
      

      Uncommenting the `console.log` statement magically removes the segfault.

      Backtrace (partial, I don't have a debug build):

      #2  0x00007f5ddf94f615 in QQmlOpenMetaObject::~QQmlOpenMetaObject() () from /usr/lib/libQt5Qml.so.5
      #4  0x00007f5dde31de6a in QObjectPrivate::~QObjectPrivate() () from /usr/lib/libQt5Core.so.5
      #5  0x00007f5dde31deea in QObjectPrivate::~QObjectPrivate() () from /usr/lib/libQt5Core.so.5
      #6  0x00007f5dde325f56 in QObject::~QObject() () from /usr/lib/libQt5Core.so.5
      #7  0x00007f5dde3262fa in QObject::~QObject() () from /usr/lib/libQt5Core.so.5
      #11 0x00007f5ddfa31739 in QQmlListModel::~QQmlListModel() () from /usr/lib/libQt5Qml.so.5
      #13 0x00007f5dde31c2cd in QObjectPrivate::deleteChildren() () from /usr/lib/libQt5Core.so.5
      #14 0x00007f5dde325f0c in QObject::~QObject() () from /usr/lib/libQt5Core.so.5
      #15 0x00007f5ddff03e95 in QQuickItem::~QQuickItem() () from /usr/lib/libQt5Quick.so.5
      #17 0x00007f5dde31f1f1 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
      #18 0x00007f5ddff0137b in QQuickItem::event(QEvent*) () from /usr/lib/libQt5Quick.so.5
      #19 0x00007f5ddf015e4c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
      #20 0x00007f5ddf01d926 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
      #21 0x00007f5dde2eebd0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
      #22 0x00007f5dde2f1426 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
      #24 0x00007f5ddb0f2a57 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
      #26 0x00007f5ddb0f2d1c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
      #27 0x00007f5dde349061 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
      #28 0x00007f5dde2ecffb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
      #29 0x00007f5dde2f6048 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
      

      Attachments

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

        Activity

          People

            shausman Simon Hausmann
            chalker Сковорода Никита
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes