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

Crash in QChangeArbeiter::sceneChangeEventWithLock

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.7.0 RC
    • 5.6.0 Beta
    • Qt3D
    • Windows 7. 32 bit, VS 2012, debug build of 5.6.0 beta.

    Description

      I get a crash in QChangeArbeiter::sceneChangeEventWithLock. It looks like QSceneChange instances are being deleted while processed. The crash happens sporadically, but I typically get it after 5-10 minutes of continuous interaction.

      Setup

      I have a custom QAbstractTextureImage which calls update() to get dataFunctor() reevaluated quite often (e.g. on camera change, which happens rapidly with user interaction).

      Stack trace

      msvcp110d.dll!std::_Debug_message(const wchar_t * message, const wchar_t * file, unsigned int line) Line 15
      Qt53DCored.dll!std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > >::_Compat(const std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > & _Right) Line 240
      Qt53DCored.dll!std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > >::operator==(const std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > & _Right) Line 205
      Qt53DCored.dll!std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > >::operator!=(const std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > & _Right) Line 210
      Qt53DCored.dll!std::_Uninit_copy<std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > >,QSharedPointer<Qt3DCore::QSceneChange> *,std::allocator<QSharedPointer<Qt3DCore::QSceneChange> > >(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _First, std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _Last, QSharedPointer<Qt3DCore::QSceneChange> * _Dest, std::_Wrap_alloc<std::allocator<QSharedPointer<Qt3DCore::QSceneChange> > > & _Al, std::_Nonscalar_ptr_iterator_tag __formal) Line 377
      Qt53DCored.dll!std::_Uninitialized_copy<std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > >,QSharedPointer<Qt3DCore::QSceneChange> *,std::_Wrap_alloc<std::allocator<QSharedPointer<Qt3DCore::QSceneChange> > > >(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _First, std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _Last, QSharedPointer<Qt3DCore::QSceneChange> * _Dest, std::_Wrap_alloc<std::allocator<QSharedPointer<Qt3DCore::QSceneChange> > > & _Al) Line 416
      Qt53DCored.dll!std::vector<QSharedPointer<Qt3DCore::QSceneChange>,std::allocator<QSharedPointer<Qt3DCore::QSceneChange> > >::_Ucopy<std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > >(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _First, std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _Last, QSharedPointer<Qt3DCore::QSceneChange> * _Ptr) Line 1553
      Qt53DCored.dll!std::vector<QSharedPointer<Qt3DCore::QSceneChange>,std::allocator<QSharedPointer<Qt3DCore::QSceneChange> > >::_Insert<std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > >(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _Where, std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _First, std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _Last, std::forward_iterator_tag __formal) Line 1348
      Qt53DCored.dll!std::vector<QSharedPointer<Qt3DCore::QSceneChange>,std::allocator<QSharedPointer<Qt3DCore::QSceneChange> > >::insert<std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > >(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _Where, std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _First, std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<QSharedPointer<Qt3DCore::QSceneChange> > > > _Last) Line 1262
      Qt53DCored.dll!Qt3DCore::QChangeArbiter::sceneChangeEventWithLock(const std::vector<QSharedPointer<Qt3DCore::QSceneChange>,std::allocator<QSharedPointer<Qt3DCore::QSceneChange> > > & e) Line 268
      Qt53DCored.dll!Qt3DCore::QPostman::submitChangeBatch() Line 123
      Qt53DCored.dll!Qt3DCore::QPostman::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 81
      Qt5Cored.dll!QMetaCallEvent::placeMetaCall(QObject * object) Line 495
      Qt5Cored.dll!QObject::event(QEvent * e) Line 1257
      Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3712
      Qt5Widgetsd.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3155
      Qt5Cored.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1013
      Qt5Cored.dll!QCoreApplication::sendEvent(QObject * receiver, QEvent * event) Line 227
      Qt5Cored.dll!QCoreApplicationPrivate::sendPostedEvents(QObject * receiver, int event_type, QThreadData * data) Line 1648
      Qt5Cored.dll!QEventDispatcherWin32::sendPostedEvents() Line 1239
      qwindowsd.dll!QWindowsGuiEventDispatcher::sendPostedEvents() Line 76
      Qt5Cored.dll!qt_internal_proc(HWND__ * hwnd, unsigned int message, unsigned int wp, long lp) Line 415
      [External Code]
      [Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]
      Qt5Cored.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 817
      qwindowsd.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 68
      Qt5Cored.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 129
      Qt5Cored.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 204
      Qt5Cored.dll!QCoreApplication::exec() Line 1283
      Qt5Guid.dll!QGuiApplication::exec() Line 1574
      Qt5Widgetsd.dll!QApplication::exec() Line 2972

      Attachments

        For Gerrit Dashboard: QTBUG-50704
        # Subject Branch Project Status CR V

        Activity

          People

            seanharmer Sean Harmer
            jornb Jørn Bersvendsen
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes