Hello guys,

I'll try to make things short. I am working with several viewers inside a 
composite viewer (CullDrawThreadPerContext), which is embedded in a Qt window. 
My frame() function in triggered by a QTimer event.

My Scene Graph is mostly dynamic, thus I regularly add and remove nodes from 
the scenegraph. I properly set the datavariance of the objects to be modified 
and implemented a queue to add my new nodes to the scene graph before frame() 
is called, same thing for the deleted nodes.

My problem is quite annoying, because I get random crashes on node creation, 
but they seem to always take place at the same point, which is the Scribe 
rendering pass. It does not happen when the compositeviewer is set 
singlethreaded. I already found a topic which basically tells people not to use 
osgFX as nobody really knows if it's thread safe or not, but I would like to 
know if I am missing something anywhere. 

Here is my stacktrace, if it can be useful in anyway :

0       osgFX::Technique::traverse_implementation(osg::NodeVisitor&, 
osgFX::Effect*)    /usr/lib/libosgFX.so.80         0x7fcf3820d9bf  
1       osgFX::Effect::traverse(osg::NodeVisitor&)      /usr/lib/libosgFX.so.80 
        0x7fcf38208392  
2       osgUtil::CullVisitor::apply(osg::Group&)        
/usr/lib/libosgUtil.so.80               0x7fcf38702c28  
3       osgFX::Scribe::accept(osg::NodeVisitor&)        /usr/lib/libosgFX.so.80 
        0x7fcf3820be32  
4       osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
5       osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
6       osg::MatrixTransform::accept(osg::NodeVisitor&) /usr/lib/libosg.so.80   
        0x7fcf39544d35  
7       osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
8       osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
9       osg::PositionAttitudeTransform::accept(osg::NodeVisitor&)       
/usr/lib/libosg.so.80           0x7fcf3955bfd5  
10      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
11      osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
12      osg::PositionAttitudeTransform::accept(osg::NodeVisitor&)       
/usr/lib/libosg.so.80           0x7fcf3955bfd5  
13      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
14      osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
15      osg::PositionAttitudeTransform::accept(osg::NodeVisitor&)       
/usr/lib/libosg.so.80           0x7fcf3955bfd5  
16      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
17      osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
18      osg::PositionAttitudeTransform::accept(osg::NodeVisitor&)       
/usr/lib/libosg.so.80           0x7fcf3955bfd5  
19      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
20      osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
21      osg::PositionAttitudeTransform::accept(osg::NodeVisitor&)       
/usr/lib/libosg.so.80           0x7fcf3955bfd5  
22      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
23      osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
24      osg::PositionAttitudeTransform::accept(osg::NodeVisitor&)       
/usr/lib/libosg.so.80           0x7fcf3955bfd5  
25      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
26      osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
27      osg::PositionAttitudeTransform::accept(osg::NodeVisitor&)       
/usr/lib/libosg.so.80           0x7fcf3955bfd5  
28      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
29      osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
30      osg::PositionAttitudeTransform::accept(osg::NodeVisitor&)       
/usr/lib/libosg.so.80           0x7fcf3955bfd5  
31      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
32      osgUtil::CullVisitor::apply(osg::Transform&)    
/usr/lib/libosgUtil.so.80               0x7fcf38702e0c  
33      osg::PositionAttitudeTransform::accept(osg::NodeVisitor&)       
/usr/lib/libosg.so.80           0x7fcf3955bfd5  
34      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
35      osgUtil::CullVisitor::apply(osg::Group&)        
/usr/lib/libosgUtil.so.80               0x7fcf38702c28  
36      osg::Group::accept(osg::NodeVisitor&)   /usr/lib/libosg.so.80           
0x7fcf394f3112  
37      osg::Group::traverse(osg::NodeVisitor&) /usr/lib/libosg.so.80           
0x7fcf394f1b23  
38      osgUtil::SceneView::cullStage(osg::Matrixd const&, osg::Matrixd const&, 
osgUtil::CullVisitor*, osgUtil::StateGraph*, osgUtil::RenderStage*, 
osg::Viewport*)     /usr/lib/libosgUtil.so.80               0x7fcf387a6a41  
39      osgUtil::SceneView::cull()      /usr/lib/libosgUtil.so.80               
0x7fcf387a2ec8  
40      osgViewer::Renderer::cull_draw()        /usr/lib/libosgViewer.so.80     
        0x7fcf38e9f82f  
41      osg::GraphicsContext::runOperations()   /usr/lib/libosg.so.80           
0x7fcf394edc59  
42      osg::OperationThread::run()     /usr/lib/libosg.so.80           
0x7fcf395549d0  
43      osg::GraphicsThread::run()      /usr/lib/libosg.so.80           
0x7fcf394f09a8  
44      OpenThreads::ThreadPrivateActions::StartThread(void*)   
/usr/lib/libOpenThreads.so.14           0x7fcf38a305ab  
45      start_thread            311     0x7fcf35859f6e  
46      clone           113     0x7fcf35b699cd  


Any thought is welcome !

Cheers,

Arnaud

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=59564#59564





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to