[osg-users] Please test SVN version of OpenSceneGraph

Alberto Luaces aluaces at udc.es
Mon Oct 1 06:53:44 PDT 2007

I have managed to crash the osgviewer application by changing the texture mode 
on and off with the 't' key and changing from time to time the threading 
model with the 'm' key. It usually crashes while in 'DrawThreadPerContext' 
mode, but not always. It is easier to reproduce this bug under release mode 
than under debug mode, sometimes is hard to trigger the crash. I wanted to 
show the crash with the cow, but I wasn't able to. I had to use a bigger 

The stack trace of the first thread shows that it _always_ happens when OSG is 
modifying the current State:

#0  0x00002b69bcc58d57 in std::_Rb_tree_increment () 
from /usr/lib/libstdc++.so.6
#1  0x00002b69bae8c52b in osg::State::pushStateSet (this=0x73cee0, 
dstate=0x613c80) at /usr/include/c++/4.2/bits/stl_tree.h:258
#2  0x00002b69bb48eb21 in osgUtil::StateGraph::moveStateGraph 
(state=@0x73cee0, sg_curr=<value optimized out>, sg_new=0x0)
    at /home/alberto/OSGSVN2/trunk/include/osgUtil/StateGraph:221
#3  0x00002b69bb48df69 in osgUtil::RenderLeaf::render (this=0xbf1d00, 
renderInfo=@0x42879d10, previous=0x0) 
at /home/alberto/OSGSVN2/trunk/src/osgUtil/RenderLeaf.cpp:69
#4  0x00002b69bb486b2d in osgUtil::RenderBin::drawImplementation 
(this=0x617d30, renderInfo=@0x42879d10, previous=@0x42879e08)
    at /home/alberto/OSGSVN2/trunk/src/osgUtil/RenderBin.cpp:428
#5  0x00002b69bb492217 in osgUtil::RenderStage::drawImplementation 
(this=0x617d30, renderInfo=@0x42879d10, previous=@0x42879e08)
    at /home/alberto/OSGSVN2/trunk/src/osgUtil/RenderStage.cpp:1051
#6  0x00002b69bb4924d8 in osgUtil::RenderStage::drawInner (this=0x617d30, 
renderInfo=@0x42879d10, previous=@0x42879e08, doCopyTexture=@0x42879d5f)
    at /home/alberto/OSGSVN2/trunk/src/osgUtil/RenderStage.cpp:719
#7  0x00002b69bb491ccb in osgUtil::RenderStage::draw (this=0x617d30, 
renderInfo=@0x615bd8, previous=@0x42879e08) 
at /home/alberto/OSGSVN2/trunk/src/osgUtil/RenderStage.cpp:913
#8  0x00002b69bb4a4124 in osgUtil::SceneView::draw (this=0x615b50) 
at /home/alberto/OSGSVN2/trunk/src/osgUtil/SceneView.cpp:1454
#9  0x00002b69bb9a32f5 in osgViewer::Renderer::draw (this=0x614f10) 
at /home/alberto/OSGSVN2/trunk/src/osgViewer/Renderer.cpp:382
#10 0x00002b69bae276e8 in osg::GraphicsContext::runOperations (this=0x17b9250) 
at /home/alberto/OSGSVN2/trunk/src/osg/GraphicsContext.cpp:671
#11 0x00002b69bae5651e in osg::OperationThread::run (this=0x2aaaac080f00) 
at /home/alberto/OSGSVN2/trunk/src/osg/OperationThread.cpp:413
#12 0x00002b69bae2e610 in osg::GraphicsThread::run (this=0x2aaaac080f00) 
at /home/alberto/OSGSVN2/trunk/src/osg/GraphicsThread.cpp:38
#13 0x00002b69baaf9b63 in OpenThreads::ThreadPrivateActions::StartThread 
(data=<value optimized out>) 
at /home/alberto/OSGSVN2/trunk/src/OpenThreads/pthreads/PThread.c++:170
#14 0x00002b69bbe4d317 in start_thread () from /lib/libpthread.so.0
#15 0x00002b69bd458b1d in clone () from /lib/libc.so.6
#16 0x0000000000000000 in ?? ()

the other thread is usually doing other tasks when the crash happens:

#0  0x00002b69bd3f8c86 in malloc () from /lib/libc.so.6
#1  0x00002b69bccb123d in operator new () from /usr/lib/libstdc++.so.6
#2  0x00002b69bae7213a in Referenced (this=0xbc09f0) 
at /home/alberto/OSGSVN2/trunk/src/osg/Referenced.cpp:119
#3  0x00002b69bade077d in CullingSet (this=0x10, cs=@0x7ffff01ce850) 
at /home/alberto/OSGSVN2/trunk/include/osg/CullingSet:46
#4  0x00002b69baddd169 in osg::CullStack::pushProjectionMatrix (this=0x617010, 
matrix=0xcc1b70) at /usr/include/c++/4.2/ext/new_allocator.h:107
#5  0x00002b69bb4a2f75 in osgUtil::SceneView::cullStage (this=0x615250, 
projection=<value optimized out>, modelview=<value optimized out>, 
    rendergraph=0x616830, renderStage=0x6168d0) 
at /home/alberto/OSGSVN2/trunk/src/osgUtil/SceneView.cpp:812
#6  0x00002b69bb4a071f in osgUtil::SceneView::cull (this=0x615250) 
at /home/alberto/OSGSVN2/trunk/src/osgUtil/SceneView.cpp:687
#7  0x00002b69bb9a3c68 in osgViewer::Renderer::cull (this=0x614f10) 
at /home/alberto/OSGSVN2/trunk/src/osgViewer/Renderer.cpp:281
#8  0x00002b69bb9c5f15 in osgViewer::Viewer::renderingTraversals 
at /home/alberto/OSGSVN2/trunk/src/osgViewer/Viewer.cpp:1522
#9  0x00002b69bb9c5136 in osgViewer::Viewer::run (this=0x7ffff01cf150) 
at /home/alberto/OSGSVN2/trunk/src/osgViewer/Viewer.cpp:318
#10 0x00000000004039a5 in main (argc=2, argv=<value optimized out>) 
at /home/alberto/OSGSVN2/trunk/applications/osgviewer/osgviewer.cpp:148

Sometimes the crash for this second thread happens on 
osgUtil::SceneView::updateUniforms or OpenThreads::Barrier::block, called by 
osg::OperationThread::run, but I think it could happen anywhere.

My system specs:

Intel Core2 Duo
Debian Lenny - Linux 2.6.21-2-amd64
nVidia GeForce 7600GS (driver version number 100.14.11)
OSG SVN revision 7528.

El Sunday 30 September 2007 21:27:35 Robert Osfield escribió:
> Hi All,
> I'll be making the 2.1.13 dev release tomorrow morning, so would very
> much appreciate some testing of the SVN version on different platforms
> before then to make sure we have a stable point to tab the release.
> I would also like to 2.2 out pretty sharp.  If possible even Thursday
> this week. This will require a couple more dev releases this week and
> lots of build/runtime testing.  In general I believe the recent 2.1.x
> look pretty stable, so hopefully this isn't too much of a tall order.
> Thanks in advance for your help,
> Robert.

More information about the osg-users mailing list