Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.5.0
-
None
Description
During application shutdown a crash occurs while processing a QSceneChange::Node event because the QNode is already destroyed.
Happens sometimes (randomly) on Windows on exit. Have not noticed this on any other platform.
Worker thread:
> Qt53DCored.dll!Qt3D::QNode::id() Line 315 C++ Qt53DCored.dll!Qt3D::QChangeArbiter::distributeQueueChanges(std::vector<QSharedPointer<Qt3D::QSceneChange>, std::allocator<QSharedPointer<Qt3D::QSceneChange> > > * changeQueue) Line 143 C++ Qt53DCored.dll!Qt3D::QChangeArbiter::syncChanges() Line 194 C++ Qt53DCored.dll!Qt3D::QAspectManager::exec() Line 198 C++ Qt53DCored.dll!Qt3D::QAspectThread::run() Line 85 C++ Qt5Cored.dll!QThreadPrivate::start(void * arg) Line 346 C++ msvcr110d.dll!_callthreadstartex() Line 354 C
Main thread:
ntdll.dll!NtWaitForSingleObject() Unknown KernelBase.dll!WaitForSingleObjectEx() Unknown > Qt5Cored.dll!QMutexPrivate::wait(int timeout) Line 59 C++ Qt5Cored.dll!QBasicMutex::lockInternal(int timeout) Line 492 C++ Qt5Cored.dll!QBasicMutex::lockInternal() Line 409 C++ Qt5Cored.dll!QBasicMutex::lock() Line 60 C++ Qt5Cored.dll!QRecursiveMutexPrivate::lock(int timeout) Line 621 C++ Qt5Cored.dll!QMutex::lock() Line 216 C++ Qt5Cored.dll!QMutexLocker::QMutexLocker(QBasicMutex * m) Line 129 C++ Qt53DCored.dll!Qt3D::QChangeArbiter::sceneChangeEventWithLock(const QSharedPointer<Qt3D::QSceneChange> & e) Line 261 C++ Qt53DCored.dll!Qt3D::QNodePrivate::notifyObservers(const QSharedPointer<Qt3D::QSceneChange> & change) Line 250 C++ Qt53DCored.dll!Qt3D::QComponentPrivate::removeEntity(Qt3D::QEntity * entity) Line 77 C++ Qt53DCored.dll!Qt3D::QEntity::removeComponent(Qt3D::QComponent * comp) Line 136 C++ Qt53DCored.dll!Qt3D::QEntity::removeAllComponents() Line 156 C++ Qt53DCored.dll!Qt3D::QEntity::~QEntity() Line 72 C++ quick3dcoreplugind.dll!QQmlPrivate::QQmlElement<Qt3D::QEntity>::~QQmlElement<Qt3D::QEntity>() Line 98 C++ quick3dcoreplugind.dll!QQmlPrivate::QQmlElement<Qt3D::QEntity>::`scalar deleting destructor'(unsigned int) C++ Qt5Cored.dll!QObjectPrivate::deleteChildren() Line 1951 C++ Qt5Cored.dll!QObject::~QObject() Line 1033 C++ Qt53DCored.dll!Qt3D::QNode::~QNode() Line 310 C++ Qt53DCored.dll!Qt3D::QEntity::~QEntity() Line 72 C++ quick3dcoreplugind.dll!QQmlPrivate::QQmlElement<Qt3D::QEntity>::~QQmlElement<Qt3D::QEntity>() Line 98 C++ quick3dcoreplugind.dll!QQmlPrivate::QQmlElement<Qt3D::QEntity>::`scalar deleting destructor'(unsigned int) C++ Qt5Cored.dll!QObjectPrivate::deleteChildren() Line 1951 C++ Qt5Cored.dll!QObject::~QObject() Line 1033 C++ Qt53DCored.dll!Qt3D::QNode::~QNode() Line 310 C++ Qt53DCored.dll!Qt3D::QEntity::~QEntity() Line 72 C++ quick3dcoreplugind.dll!QQmlPrivate::QQmlElement<Qt3D::QEntity>::~QQmlElement<Qt3D::QEntity>() Line 98 C++ quick3dcoreplugind.dll!QQmlPrivate::QQmlElement<Qt3D::QEntity>::`scalar deleting destructor'(unsigned int) C++ Qt53DCored.dll!QtSharedPointer::CustomDeleter<Qt3D::QEntity,QtSharedPointer::NormalDeleter>::execute() Line 189 C++ Qt53DCored.dll!QtSharedPointer::ExternalRefCountWithCustomDeleter<Qt3D::QEntity,QtSharedPointer::NormalDeleter> ::deleter(QtSharedPointer::ExternalRefCountData * self) Line 211 C++ Qt53DCored.dll!QtSharedPointer::ExternalRefCountData::destroy() Line 151 C++ Qt53DCored.dll!QSharedPointer<Qt3D::QEntity>::deref(QtSharedPointer::ExternalRefCountData * d) Line 473 C++ Qt53DCored.dll!QSharedPointer<Qt3D::QEntity>::deref() Line 466 C++ Qt53DCored.dll!QSharedPointer<Qt3D::QEntity>::~QSharedPointer<Qt3D::QEntity>() Line 305 C++ Qt53DCored.dll!QSharedPointer<Qt3D::QEntity>::reset(Qt3D::QEntity * t) Line 361 C++ Qt53DCored.dll!Qt3D::QAspectEngine::setRootEntity(Qt3D::QEntity * root) Line 203 C++ Qt53DCored.dll!Qt3D::QAspectEngine::shutdown() Line 138 C++ Qt53DCored.dll!Qt3D::QAspectEngine::~QAspectEngine() Line 95 C++ Qt53DQuickd.dll!Qt3D::QAspectEngine::`scalar deleting destructor'(unsigned int) C++ Qt53DQuickd.dll!QScopedPointerDeleter<Qt3D::QAspectEngine>::cleanup(Qt3D::QAspectEngine * pointer) Line 54 C++ Qt53DQuickd.dll!QScopedPointer<Qt3D::QAspectEngine,QScopedPointerDeleter<Qt3D::QAspectEngine> > ::~QScopedPointer<Qt3D::QAspectEngine,QScopedPointerDeleter<Qt3D::QAspectEngine> >() Line 102 C++ Qt53DQuickd.dll!Qt3D::Quick::QQmlAspectEnginePrivate::~QQmlAspectEnginePrivate() C++ Qt53DQuickd.dll!Qt3D::Quick::QQmlAspectEnginePrivate::`scalar deleting destructor'(unsigned int) C++ Qt5Cored.dll!QScopedPointerDeleter<QObjectData>::cleanup(QObjectData * pointer) Line 54 C++ Qt5Cored.dll!QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> > ::~QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> >() Line 102 C++ Qt5Cored.dll!QObject::~QObject() Line 1039 C++ Qt53DQuickd.dll!Qt3D::Quick::QQmlAspectEngine::~QQmlAspectEngine() C++ materials.exe!main(int argc, char * * argv) Line 69 C++ materials.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) Line 113 C++