Hi,
In my scene graph I have root node and I am doing deletion/addition of nodes in scenegraph at run time from a different thread than main thread. These nodes are simple textured quads and are having dynamic textures. Data variance of root node as well as these child nodes is set to DYNAMIC.
My Osg::Viewer threading model is set to SingleThreaded.
What I found from previous posts is that multi-threading should not be the issue as long as we are setting data variance to DYNAMIC.
I was trying to reproduce this crash after setting osg::NotifyLevel to INFO. I will post more details as oon as i get some log.
meanwhile the call stack i am getting is as follows
> msvcp90d.dll!std::_Debug_message(const wchar_t * message=0x57139ee0, const wchar_t * file=0x5712f870, unsigned int line=251) Line 24 C++
osg80-osgd.dll!std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> > >::_Compat(const std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> > > & _Right={_ptr=0x00000000 }) Line 251 + 0x17 bytes C++
osg80-osgd.dll!std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> > >::operator==(const std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> > > & _Right={_ptr=0x00000000 }) Line 211 C++
osg80-osgd.dll!std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> > >::operator!=(const std::_Vector_const_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> > > & _Right={_ptr=0x00000000 }) Line 216 + 0xc bytes C++
osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...}) Line 60 + 0x33 bytes C++
osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...}) Line 193 + 0x1c bytes C++
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node & node={...}) Line 312 + 0xf bytes C++
osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Transform & node={...}) Line 1151 C++
osg80-osgd.dll!osg::NodeVisitor::apply(osg::MatrixTransform & node={...}) Line 136 + 0x13 bytes C++
osg80-osgd.dll!osg::MatrixTransform::accept(osg::NodeVisitor & nv={...}) Line 37 + 0x41 bytes C++
osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...}) Line 62 + 0x25 bytes C++
osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...}) Line 193 + 0x1c bytes C++
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node & node={...}) Line 312 + 0xf bytes C++
osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Transform & node={...}) Line 1151 C++
osg80-osgd.dll!osg::NodeVisitor::apply(osg::MatrixTransform & node={...}) Line 136 + 0x13 bytes C++
osg80-osgd.dll!osg::MatrixTransform::accept(osg::NodeVisitor & nv={...}) Line 37 + 0x41 bytes C++
osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...}) Line 62 + 0x25 bytes C++
osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...}) Line 193 + 0x1c bytes C++
osg80-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node & node={...}) Line 312 + 0xf bytes C++
osg80-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group & node={...}) Line 1128 C++
osg80-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Line 38 + 0x41 bytes C++
osg80-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...}) Line 62 + 0x25 bytes C++
osg80-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...}) Line 193 + 0x1c bytes C++
osg80-osgUtild.dll!osgUtil::SceneView::cullStage(const osg::Matrixd & projection={...}, const osg::Matrixd & modelview={...}, osgUtil::CullVisitor * cullVisitor=0x04062250, osgUtil::StateGraph * rendergraph=0x04061990, osgUtil::RenderStage * renderStage=0x04061a28, osg::Viewport * viewport=0x04073f08) Line 980 + 0x1a bytes C++
osg80-osgUtild.dll!osgUtil::SceneView::cull() Line 845 + 0x57 bytes C++
osg80-osgViewerd.dll!osgViewer::Renderer::cull_draw() Line 809 + 0xf bytes C++
osg80-osgViewerd.dll!osgViewer::Renderer::operator()(osg::GraphicsContext * context=0x04b018e0) Line 888 + 0xf bytes C++
osg80-osgd.dll!osg::GraphicsContext::runOperations() Line 756 + 0x33 bytes C++
osg80-osgViewerd.dll!osgViewer::ViewerBase::renderingTraversals() Line 807 + 0x15 bytes C++
osg80-osgViewerd.dll!osgViewer::ViewerBase::frame(double simulationTime=1.7976931348623157e+308) Line 645 + 0xf bytes C++
VDViewerd.dll!VDViewer::VDViewerWindow::paintEvent(QPaintEvent * event=0x00bdcdac) Line 204 + 0x35 bytes C++
here VDViewer is viewer class.
...
Thank you!
Cheers,
Abhishek
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=52830#52830
_______________________________________________
osg-users mailing list
osg-...@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org