Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.6.0 Beta
-
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 |
158480,5 | Temporarily remove use of a custom allocator for QNodePropertyChanges | 5.7 | qt/qt3d | Status: MERGED | +2 | 0 |
159308,3 | Temporarily remove use of a custom allocator for QNodePropertyChanges. | 5.6 | qt/qt3d | Status: MERGED | +2 | 0 |