[Interest] [Qt3D] Crash when changing an entity's parent many times

Sean Harmer sean.harmer at kdab.com
Wed Oct 26 17:19:27 CEST 2016


Hi,

can you file a JIRA with a small test case please?

Cheers,

Sean

On 26/10/2016 16:16, Xavier Bigand wrote:
> Yes I had this issue too, but when trying to share my QShaderProgram not
> changing parents.
>
> I simply can't progress as fast as want because of a lot of small bugs
> like this one and sadly I don't know how the backend is supposed to work
> to be able to contribute.
>
>
> In our homebrew engine I had similar issue, and the simplest way to
> solve them was to check ptr in the 3D engine instead of using assert,
> because it can be much hard from the user view to ensure the validity of
> all nodes.
>
>
>
> 2016-10-26 16:56 GMT+02:00 Oleg Evseev <ev.mipt at gmail.com
> <mailto:ev.mipt at gmail.com>>:
>
>     Hi,
>
>     I had problems similar to what you describe
>     https://bugreports.qt.io/browse/QTBUG-55093
>     <https://bugreports.qt.io/browse/QTBUG-55093> in qt 5.7. I haven't
>     check it on 5.8.
>
>     2016-10-26 16:37 GMT+03:00 Xavier Bigand <flamaros.xavier at gmail.com
>     <mailto:flamaros.xavier at gmail.com>>:
>
>         Hi,
>
>         I have to change to parent to nullptr to make some entities
>         invisible, but when I put them visible back I get a crash.
>
>         The crash is a segfault in the method void
>         Entity::setNodeManagers(NodeManagers *manager) because the this
>         pointer is null.
>
>         Here is the callstack :
>          Qt53DRenderd.dll!Qt3DRender::Render::Entity::setNodeManagers(Qt3DRender::Render::NodeManagers
>         * manager) Line 140C++
>          Qt53DRenderd.dll!Qt3DRender::Render::RenderEntityFunctor::create(const
>         QSharedPointer<Qt3DCore::QNodeCreatedChangeBase> & change) Line
>         562C++
>          Qt53DCored.dll!Qt3DCore::QAbstractAspectPrivate::createBackendNode(const
>         QSharedPointer<Qt3DCore::QNodeCreatedChangeBase> & change) Line
>         198C++
>          Qt53DCored.dll!Qt3DCore::QAbstractAspectPrivate::sceneNodeAdded(QSharedPointer<Qt3DCore::QSceneChange>
>         & change) Line 163C++
>         Qt53DCored.dll!Qt3DCore::QChangeArbiter::distributeQueueChanges(std::vector<QSharedPointer<Qt3DCore::QSceneChange>,std::allocator<QSharedPointer<Qt3DCore::QSceneChange>
>         > > * changeQueue) Line 120C++
>          Qt53DCored.dll!Qt3DCore::QChangeArbiter::syncChanges() Line 180C++
>          Qt53DCored.dll!Qt3DCore::QAspectManager::exec() Line 282C++
>          Qt53DCored.dll!Qt3DCore::QAspectThread::run() Line 88C++
>          Qt5Cored.dll!QThreadPrivate::start(void * arg) Line 380C++
>          [External Code]
>          [Frames below may be incorrect and/or missing, no symbols
>         loaded for kernel32.dll]
>
>
>
>         I am also curious to know what does the enable flag on QEntity,
>         it seems easier to use it to control the visibility of object
>         and maybe faster.
>
>
>         PS: I am using the git branch 5.8
>
>
>         --
>         Xavier
>
>         _______________________________________________
>         Interest mailing list
>         Interest at qt-project.org <mailto:Interest at qt-project.org>
>         http://lists.qt-project.org/mailman/listinfo/interest
>         <http://lists.qt-project.org/mailman/listinfo/interest>
>
>
>     _______________________________________________
>     Interest mailing list
>     Interest at qt-project.org <mailto:Interest at qt-project.org>
>     http://lists.qt-project.org/mailman/listinfo/interest
>     <http://lists.qt-project.org/mailman/listinfo/interest>
>
>
>
>
> --
> Xavier
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>

-- 
Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK
KDAB (UK) Ltd, a KDAB Group company
Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090
Mobile: +44 (0)7545 140604
KDAB - Qt Experts



More information about the Interest mailing list