Hi Steve,

Is the setText being called from the cull or draw traversals?  If then
this will cause threading problem.  You should only modify the scene
graph during the update phase ie. between viewer.sync() and
viewer.frame();

Robert.

On 1/3/07, Steve Webb <[EMAIL PROTECTED]> wrote:
(gdb) bt
#0  0x07b94280 in std::_Rb_tree_increment () from /usr/lib/libstdc++.so.6
#1  0x005c700f in osgText::Text::computePositions () from 
/usr/lib/libosgText.so.1
#2  0x005cd80b in osgText::Text::drawImplementation () from 
/usr/lib/libosgText.so.1
#3  0x03a2d42f in osgUtil::RenderLeaf::render () from /usr/lib/libosgUtil.so.1
#4  0x03a2554d in osgUtil::RenderBin::drawImplementation () from 
/usr/lib/libosgUtil.so.1
#5  0x03a25200 in osgUtil::RenderBin::draw () from /usr/lib/libosgUtil.so.1
#6  0x03a255f0 in osgUtil::RenderBin::drawImplementation () from 
/usr/lib/libosgUtil.so.1
#7  0x03a31453 in osgUtil::RenderStage::drawImplementation () from 
/usr/lib/libosgUtil.so.1
#8  0x03a25200 in osgUtil::RenderBin::draw () from /usr/lib/libosgUtil.so.1
#9  0x03a30d8b in osgUtil::RenderStage::drawInner () from 
/usr/lib/libosgUtil.so.1
#10 0x03a30c3c in osgUtil::RenderStage::draw () from /usr/lib/libosgUtil.so.1
#11 0x03a44112 in osgUtil::SceneView::draw () from /usr/lib/libosgUtil.so.1
#12 0x00579ad2 in osgProducer::OsgSceneHandler::drawImplementation () from 
/usr/lib/libosgProducer.so.1
#13 0x0057b1ef in osgProducer::OsgSceneHandler::draw () from 
/usr/lib/libosgProducer.so.1
#14 0x006a5a0d in Producer::Camera::_frame () from /usr/lib/libProducer.so.1
#15 0x006a6390 in Producer::Camera::frame () from /usr/lib/libProducer.so.1
#16 0x006aa818 in Producer::CameraGroup::_singleThreadedFrame () from 
/usr/lib/libProducer.so.1
#17 0x006aa9d8 in Producer::CameraGroup::_frame () from 
/usr/lib/libProducer.so.1
#18 0x006aaa68 in Producer::CameraGroup::frame () from /usr/lib/libProducer.so.1
#19 0x0056fb71 in osgProducer::OsgCameraGroup::frame () from 
/usr/lib/libosgProducer.so.1
#20 0x005915c2 in osgProducer::Viewer::frame () from 
/usr/lib/libosgProducer.so.1
#21 0x0804a12f in main (argc=0, argv=0x0) at pronto.cpp:165

Hello.

I've got an app that spins an object in one thread and spits text to the
screen in another thread.  Things work fine for about 60 seconds until the
app segfaults somewhere in osgText (stacktrace above).

int log_msg (char *thestring) {
         int a;
         for (a=0;a<(NUMLINES-1);a++) {
                 text[a]->setText(text[a+1]->getText());
         }
         text[NUMLINES-1]->setText(thestring);
}

The above is called from the second thread to update the text (scroll the
text) in the scene.  If I comment-out the setText() calls, everything is
fine.

The segfault is not always in the same place, but always somewhere inside
of osgText.

Everything is running under linux with a very recent release of OSG (got
it from the tarball about 2 weeks ago).

Under cygwin, it Segfaults in osgText::Text::setText() without even
pulling up an initial window.

Different stacktraces with the same code:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208239856 (LWP 24960)]
0x005c6ec3 in osgText::Text::computePositions () from /usr/lib/libosgText.so.1
(gdb) bt
#0  0x005c6ec3 in osgText::Text::computePositions () from 
/usr/lib/libosgText.so.1
#1  0x005cd80b in osgText::Text::drawImplementation () from 
/usr/lib/libosgText.so.1
#2  0x03a2d42f in osgUtil::RenderLeaf::render () from /usr/lib/libosgUtil.so.1
#3  0x03a2554d in osgUtil::RenderBin::drawImplementation () from 
/usr/lib/libosgUtil.so.1
#4  0x03a25200 in osgUtil::RenderBin::draw () from /usr/lib/libosgUtil.so.1
#5  0x03a255f0 in osgUtil::RenderBin::drawImplementation () from 
/usr/lib/libosgUtil.so.1
#6  0x03a31453 in osgUtil::RenderStage::drawImplementation () from 
/usr/lib/libosgUtil.so.1
#7  0x03a25200 in osgUtil::RenderBin::draw () from /usr/lib/libosgUtil.so.1
#8  0x03a30d8b in osgUtil::RenderStage::drawInner () from 
/usr/lib/libosgUtil.so.1
#9  0x03a30c3c in osgUtil::RenderStage::draw () from /usr/lib/libosgUtil.so.1
#10 0x03a44112 in osgUtil::SceneView::draw () from /usr/lib/libosgUtil.so.1
#11 0x00579ad2 in osgProducer::OsgSceneHandler::drawImplementation () from 
/usr/lib/libosgProducer.so.1
#12 0x0057b1ef in osgProducer::OsgSceneHandler::draw () from 
/usr/lib/libosgProducer.so.1
#13 0x006a5a0d in Producer::Camera::_frame () from /usr/lib/libProducer.so.1
#14 0x006a6390 in Producer::Camera::frame () from /usr/lib/libProducer.so.1
#15 0x006aa818 in Producer::CameraGroup::_singleThreadedFrame () from 
/usr/lib/libProducer.so.1
#16 0x006aa9d8 in Producer::CameraGroup::_frame () from 
/usr/lib/libProducer.so.1
#17 0x006aaa68 in Producer::CameraGroup::frame () from /usr/lib/libProducer.so.1
#18 0x0056fb71 in osgProducer::OsgCameraGroup::frame () from 
/usr/lib/libosgProducer.so.1
#19 0x005915c2 in osgProducer::Viewer::frame () from 
/usr/lib/libosgProducer.so.1
#20 0x0804a1bb in main (argc=Cannot access memory at address 0x0
) at pronto.cpp:165

(next one was quick, and during a resize of the window)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208297200 (LWP 25068)]
0x005d242c in std::__uninitialized_fill_n_aux<std::vector<osg::Vec3f, std::allocator<osg::Vec3f> 
>*, unsigned int, std::vector<osg::Vec3f, std::allocator<osg::Vec3f> > > ()
    from /usr/lib/libosgText.so.1
(gdb) bt
#0  0x005d242c in std::__uninitialized_fill_n_aux<std::vector<osg::Vec3f, 
std::allocator<osg::Vec3f> >*, unsigned int, std::vector<osg::Vec3f, 
std::allocator<osg::Vec3f> > > ()
    from /usr/lib/libosgText.so.1
#1  0x005d252f in std::__uninitialized_fill_n_a<std::vector<osg::Vec3f, std::allocator<osg::Vec3f> >*, 
unsigned int, std::vector<osg::Vec3f, std::allocator<osg::Vec3f> >, std::vector<osg::Vec3f, 
std::allocator<osg::Vec3f> > > () from /usr/lib/libosgText.so.1
#2  0x005d2a1e in std::vector<std::vector<osg::Vec3f, std::allocator<osg::Vec3f> >, 
std::allocator<std::vector<osg::Vec3f, std::allocator<osg::Vec3f> > > >::_M_fill_insert ()
    from /usr/lib/libosgText.so.1
#3  0x005c60bc in osgText::Text::drawForegroundText () from 
/usr/lib/libosgText.so.1
#4  0x005cd163 in osgText::Text::renderOnlyForegroundText () from 
/usr/lib/libosgText.so.1
#5  0x005ce4e2 in osgText::Text::drawImplementation () from 
/usr/lib/libosgText.so.1
#6  0x03a2d42f in osgUtil::RenderLeaf::render () from /usr/lib/libosgUtil.so.1
#7  0x03a2554d in osgUtil::RenderBin::drawImplementation () from 
/usr/lib/libosgUtil.so.1
#8  0x03a25200 in osgUtil::RenderBin::draw () from /usr/lib/libosgUtil.so.1
#9  0x03a255f0 in osgUtil::RenderBin::drawImplementation () from 
/usr/lib/libosgUtil.so.1
#10 0x03a31453 in osgUtil::RenderStage::drawImplementation () from 
/usr/lib/libosgUtil.so.1
#11 0x03a25200 in osgUtil::RenderBin::draw () from /usr/lib/libosgUtil.so.1
#12 0x03a30d8b in osgUtil::RenderStage::drawInner () from 
/usr/lib/libosgUtil.so.1
#13 0x03a30c3c in osgUtil::RenderStage::draw () from /usr/lib/libosgUtil.so.1
#14 0x03a44112 in osgUtil::SceneView::draw () from /usr/lib/libosgUtil.so.1
#15 0x00579ad2 in osgProducer::OsgSceneHandler::drawImplementation () from 
/usr/lib/libosgProducer.so.1
#16 0x0057b1ef in osgProducer::OsgSceneHandler::draw () from 
/usr/lib/libosgProducer.so.1
#17 0x006a5a0d in Producer::Camera::_frame () from /usr/lib/libProducer.so.1
#18 0x006a6390 in Producer::Camera::frame () from /usr/lib/libProducer.so.1
#19 0x006aa818 in Producer::CameraGroup::_singleThreadedFrame () from 
/usr/lib/libProducer.so.1
#20 0x006aa9d8 in Producer::CameraGroup::_frame () from 
/usr/lib/libProducer.so.1
#21 0x006aaa68 in Producer::CameraGroup::frame () from /usr/lib/libProducer.so.1
#22 0x0056fb71 in osgProducer::OsgCameraGroup::frame () from 
/usr/lib/libosgProducer.so.1
#23 0x005915c2 in osgProducer::Viewer::frame () from 
/usr/lib/libosgProducer.so.1
#24 0x0804a1bb in main (argc=136754104, argv=0x826b3b8) at pronto.cpp:165


- Steve

--
EMAIL: (h) [EMAIL PROTECTED]  WEB: http://badcheese.com/~steve


_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to