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

Qt Quick application crashes when assigning a property in a loop

    XMLWordPrintable

Details

    • a48ae1d629f4c7939f3421db969f43db6bab8e11

    Description

      Attached is a simple Qt Quick 2 application with empty window and a mouse area. The mouse area has positionChanged handler which assigns a point property multiple times in a loop. When the application is compiled with clang 64bit, mkspec macx-clang-libc++, it crashes every time in QtV8 when you move the mouse cursor around the window for a few seconds. It does not seem to happen if using mkspec macx-clang. Here's the stack trace:

      Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
      0   QtV8                          	0x000000010f11b185 v8::internal::JSObject::SetExternalResourceObject(v8::internal::Object*) + 149
      1   QtV8                          	0x000000010f10ebd0 v8::Object::SetExternalResource(v8::Object::ExternalResource*) + 144
      2   QtQml                         	0x000000010e5297e3 QV8ValueTypeWrapper::newValueType(QVariant const&, QQmlValueType*) + 115
      3   QtQml                         	0x000000010e508b40 QV8Engine::fromVariant(QVariant const&) + 1152
      4   QtQml                         	0x000000010e5305ec QQmlBuiltinFunctions::point(v8::Arguments const&) + 204
      5   QtV8                          	0x000000010f132c6b v8::internal::Builtin_HandleApiCall(v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>, v8::internal::Isolate*) + 459
      6   ???                           	0x00003f288480618e 0 + 69443254247822
      7   ???                           	0x00003f2884838327 0 + 69443254453031
      8   ???                           	0x00003f28848249e7 0 + 69443254372839
      9   ???                           	0x00003f2884811477 0 + 69443254293623
      10  QtV8                          	0x000000010f15a4f9 v8::internal::Invoke(bool, v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*, v8::internal::Handle<v8::internal::Object>) + 537
      11  QtV8                          	0x000000010f15a03c v8::internal::Execution::Call(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*, bool, v8::internal::Handle<v8::internal::Object>) + 364
      12  QtV8                          	0x000000010f159ec1 v8::internal::Execution::Call(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*, bool) + 33
      13  QtV8                          	0x000000010f10caf5 v8::Function::Call(v8::Handle<v8::Object>, int, v8::Handle<v8::Value>*) + 325
      14  QtQml                         	0x000000010e4ac001 QQmlJavaScriptExpression::evaluate(QQmlContextData*, v8::Handle<v8::Function>, int, v8::Handle<v8::Value>*, bool*) + 673
      15  QtQml                         	0x000000010e45127d QQmlBoundSignalExpression::evaluate(void**) + 1597
      16  QtQml                         	0x000000010e451ebc QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) + 380
      17  QtQml                         	0x000000010e490a7c QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) + 92
      18  QtQml                         	0x000000010e401d4f QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) + 703
      19  QtCore                        	0x000000010e9887ad QMetaObject::activate(QObject*, int, int, void**) + 221
      20  QtQuick                       	0x000000010e1ca680 QQuickMouseArea::positionChanged(QQuickMouseEvent*) + 64
      21  QtQuick                       	0x000000010e1129d7 QQuickMouseArea::hoverMoveEvent(QHoverEvent*) + 279
      22  QtQuick                       	0x000000010e0a877c QQuickWindow::sendEvent(QQuickItem*, QEvent*) + 268
      23  QtQuick                       	0x000000010e0a8b39 QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, bool&) + 633
      24  QtQuick                       	0x000000010e0a89cf QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, bool&) + 271
      25  QtQuick                       	0x000000010e0a89cf QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, bool&) + 271
      26  QtQuick                       	0x000000010e0ac3e6 QQuickWindow::mouseMoveEvent(QMouseEvent*) + 166
      27  QtGui                         	0x000000010ed0b032 QWindow::event(QEvent*) + 178
      28  QtQuick                       	0x000000010e0aaf3a QQuickWindow::event(QEvent*) + 266
      29  QtCore                        	0x000000010e95b324 QCoreApplication::notify(QObject*, QEvent*) + 180
      30  QtGui                         	0x000000010ed008c5 QGuiApplication::notify(QObject*, QEvent*) + 165
      31  QtCore                        	0x000000010e95b23e QCoreApplication::notifyInternal(QObject*, QEvent*) + 110
      32  QtGui                         	0x000000010ed01609 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 1961
      33  QtGui                         	0x000000010ed00a6c QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) + 92
      34  QtGui                         	0x000000010ecf5028 QWindowSystemInterface::sendWindowSystemEventsImplementation(QFlags<QEventLoop::ProcessEventsFlag>) + 56
      35  QtGui                         	0x000000010ecf50b8 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 24
      36  libqcocoa.dylib               	0x0000000110b07df5 QCocoaEventDispatcherPrivate::processPostedEvents() + 149
      37  libqcocoa.dylib               	0x0000000110b086fb QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) + 43
      38  com.apple.CoreFoundation      	0x00007fff8e1c7101 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
      39  com.apple.CoreFoundation      	0x00007fff8e1c6a25 __CFRunLoopDoSources0 + 245
      40  com.apple.CoreFoundation      	0x00007fff8e1e9dc5 __CFRunLoopRun + 789
      41  com.apple.CoreFoundation      	0x00007fff8e1e96b2 CFRunLoopRunSpecific + 290
      42  com.apple.HIToolbox           	0x00007fff882810a4 RunCurrentEventLoopInMode + 209
      43  com.apple.HIToolbox           	0x00007fff88280e42 ReceiveNextEventCommon + 356
      44  com.apple.HIToolbox           	0x00007fff88280cd3 BlockUntilNextEventMatchingListInMode + 62
      45  com.apple.AppKit              	0x00007fff894ed613 _DPSNextEvent + 685
      46  com.apple.AppKit              	0x00007fff894eced2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
      47  com.apple.AppKit              	0x00007fff894e4283 -[NSApplication run] + 517
      48  libqcocoa.dylib               	0x0000000110b073fb QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1307
      49  QtCore                        	0x000000010e958a43 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 371
      50  QtCore                        	0x000000010e95b7c5 QCoreApplication::exec() + 357
      51  com.yourcompany.qtq2test      	0x000000010dffbe23 main + 147 (main.cpp:12)
      52  com.yourcompany.qtq2test      	0x000000010dffbd84 start + 52
      

      Attachments

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

        Activity

          People

            shausman Simon Hausmann
            ericfr Eric McFluxroot
            Votes:
            10 Vote for this issue
            Watchers:
            15 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes