* Melchior FRANZ -- Tuesday 03 February 2009: > Just for the record: I've had several segfaults in OSG's > particle code (threading related) since I updated a few > days ago. I'll post a backtrace when I run into it again.
Linux 2.6.28.3, P4/32bit, gcc 4.3.1, osg r9631, FlightGear. (The warnings in #20 and #21 are strange. Haven't seen that before.) m. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb678b6f0 (LWP 9931)] osgParticle::ParticleSystemUpdater::traverse (this=0x887a668, n...@0x89fa9c0) at /home/m/fgfs/osg/include/OpenThreads/ReadWriteMutex:103 103 ScopedWriteLock(ReadWriteMutex& mutex):_mutex(mutex) { _mutex.writeLock(); } (gdb) bt #0 osgParticle::ParticleSystemUpdater::traverse (this=0x887a668, n...@0x89fa9c0) at /home/m/fgfs/osg/include/OpenThreads/ReadWriteMutex:103 #1 0xb7dc0520 in osgUtil::CullVisitor::apply (this=0x89fa9c0, no...@0x887a668) at /home/m/fgfs/osg/include/osg/NodeVisitor:191 #2 0xb7f2c791 in osgParticle::ParticleSystemUpdater::accept (this=0x887a668, n...@0x89fa9c0) at /home/m/fgfs/osg/include/osgParticle/ParticleSystemUpdater:44 #3 0xb7bb64fa in osg::Group::traverse (this=0xd491b40, n...@0x89fa9c0) at /home/m/fgfs/osg/src/osg/Group.cpp:62 #4 0xb7dbf1c0 in osgUtil::CullVisitor::apply (this=0x89fa9c0, no...@0xd491b40) at /home/m/fgfs/osg/include/osg/NodeVisitor:191 #5 0xb7bb7f2f in osg::Group::accept (this=0xd491b40, n...@0x89fa9c0) at /home/m/fgfs/osg/include/osg/Group:38 #6 0xb7bb64fa in osg::Group::traverse (this=0xcfc4340, n...@0x89fa9c0) at /home/m/fgfs/osg/src/osg/Group.cpp:62 #7 0xb7dbf1c0 in osgUtil::CullVisitor::apply (this=0x89fa9c0, no...@0xcfc4340) at /home/m/fgfs/osg/include/osg/NodeVisitor:191 #8 0xb7bb7f2f in osg::Group::accept (this=0xcfc4340, n...@0x89fa9c0) at /home/m/fgfs/osg/include/osg/Group:38 #9 0xb7bb64fa in osg::Group::traverse (this=0x105066d0, n...@0x89fa9c0) at /home/m/fgfs/osg/src/osg/Group.cpp:62 #10 0xb7dbf1c0 in osgUtil::CullVisitor::apply (this=0x89fa9c0, no...@0x105066d0) at /home/m/fgfs/osg/include/osg/NodeVisitor:191 #11 0xb7bb7f2f in osg::Group::accept (this=0x105066d0, n...@0x89fa9c0) at /home/m/fgfs/osg/include/osg/Group:38 #12 0xb7bb64fa in osg::Group::traverse (this=0x10506840, n...@0x89fa9c0) at /home/m/fgfs/osg/src/osg/Group.cpp:62 #13 0xb7db9f7b in osgUtil::CullVisitor::apply (this=0x89fa9c0, no...@0x10506840) at /home/m/fgfs/osg/include/osg/NodeVisitor:191 #14 0xb7bdd299 in osg::LightSource::accept (this=0x10506840, n...@0x89fa9c0) at /home/m/fgfs/osg/include/osg/LightSource:38 #15 0xb7bb64fa in osg::Group::traverse (this=0x8885558, n...@0x89fa9c0) at /home/m/fgfs/osg/src/osg/Group.cpp:62 #16 0xb7dbf1c0 in osgUtil::CullVisitor::apply (this=0x89fa9c0, no...@0x8885558) at /home/m/fgfs/osg/include/osg/NodeVisitor:191 #17 0xb7bb7f2f in osg::Group::accept (this=0x8885558, n...@0x89fa9c0) at /home/m/fgfs/osg/include/osg/Group:38 #18 0xb7c4804f in osg::Switch::traverse (this=0x105074d8, n...@0x89fa9c0) at /home/m/fgfs/osg/src/osg/Switch.cpp:40 #19 0xb7dbf1c0 in osgUtil::CullVisitor::apply (this=0x89fa9c0, no...@0x105074d8) at /home/m/fgfs/osg/include/osg/NodeVisitor:191 #20 0xb7db87aa in osgUtil::CullVisitor::apply (this=0x89fa9c0, no...@0x105074d8) at /home/m/fgfs/osg/src/osgUtil/CullVisitor.cpp:1097 warning: (Internal error: pc 0xb7c495ee in read in psymtab, but not in symtab.) warning: (Internal error: pc 0xb7c495ed in read in psymtab, but not in symtab.) warning: (Internal error: pc 0xb7c495ed in read in psymtab, but not in symtab.) #21 0xb7c495ee in osg::Switch::accept (this=warning: (Internal error: pc 0xb7c495a0 in read in psymtab, but not in symtab.) warning: (Internal error: pc 0xb7c495ed in read in psymtab, but not in symtab.) 0x105074d8, n...@0x89fa9c0) at /home/m/fgfs/osg/include/osg/Switch:40 #22 0xb7bb64fa in osg::Group::traverse (this=0x89fe348, n...@0x89fa9c0) at /home/m/fgfs/osg/src/osg/Group.cpp:62 #23 0xb7dbf1c0 in osgUtil::CullVisitor::apply (this=0x89fa9c0, no...@0x89fe348) at /home/m/fgfs/osg/include/osg/NodeVisitor:191 #24 0xb7bb7f2f in osg::Group::accept (this=0x89fe348, n...@0x89fa9c0) at /home/m/fgfs/osg/include/osg/Group:38 #25 0xb7e49f65 in osgUtil::SceneView::cullStage (this=0x89f9d80, projecti...@0x89f99a0, modelvi...@0x89f9a20, cullVisitor=0x89fa9c0, rendergraph=0x89fa7e0, renderStage=0x89fa830, viewport=0x893ac20) at /home/m/fgfs/osg/src/osgUtil/SceneView.cpp:962 #26 0xb7e46b19 in osgUtil::SceneView::cull (this=0x89f9d80) at /home/m/fgfs/osg/src/osgUtil/SceneView.cpp:828 #27 0xb7fcb728 in osgViewer::Renderer::cull_draw (this=0x89f9cb8) at /home/m/fgfs/osg/src/osgViewer/Renderer.cpp:546 #28 0xb7fc6d9b in osgViewer::Renderer::operator() (this=0x208, context=0x8962380) at /home/m/fgfs/osg/src/osgViewer/Renderer.cpp:689 #29 0xb7baf637 in osg::GraphicsContext::runOperations (this=0x8962380) at /home/m/fgfs/osg/src/osg/GraphicsContext.cpp:688 #30 0xb8007e62 in osgViewer::ViewerBase::renderingTraversals (this=0x893e438) at /home/m/fgfs/osg/src/osgViewer/ViewerBase.cpp:772 #31 0xb800492f in osgViewer::ViewerBase::frame (this=0x893e438, simulationTime=1.7976931348623157e+308) at /home/m/fgfs/osg/src/osgViewer/ViewerBase.cpp:609 #32 0x08067e5f in fgOSMainLoop () at src/Main/fg_os_osgviewer.cxx:180 #33 0x080714ed in fgMainInit (argc=24, argv=0xbf873f24) at src/Main/main.cxx:1070 #34 0x08067735 in main (argc=24, argv=0xbf873f24) at src/Main/bootstrap.cxx:177 Probably not very interesting, but as I don't know what else to post ... (gdb) f 1 (gdb) print *this $4 = (osgUtil::CullVisitor) { <osg::NodeVisitor> = { <osg::Referenced> = { _vptr.Referenced = 0xb7eafb28, _observerSetDataPtr = { _ptr = 0x0 }, _refCount = { _value = 1 } }, members of osg::NodeVisitor: _vptr.NodeVisitor = 0xb7eafa6c, _visitorType = osg::NodeVisitor::CULL_VISITOR, _traversalNumber = 60420, _frameStamp = { _ptr = 0x88c8210 }, _traversalMode = osg::NodeVisitor::TRAVERSE_ACTIVE_CHILDREN, _traversalMask = 4294965311, _nodeMaskOverride = 0, _nodePath = { <std::_Vector_base<osg::Node*, std::allocator<osg::Node*> >> = { _M_impl = { <std::allocator<osg::Node*>> = { <__gnu_cxx::new_allocator<osg::Node*>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::Node*, std::allocator<osg::Node*> >::_Vector_impl: _M_start = 0xa87a1df0, _M_finish = 0xa87a1e10, _M_end_of_storage = 0xa87a1e70 } }, <No data fields>}, _userData = { _ptr = 0x0 }, _databaseRequestHandler = { _ptr = 0x89de850 }, _imageRequestHandler = { _ptr = 0x89d56a8 } }, <osg::CullStack> = { <osg::CullSettings> = { _vptr.CullSettings = 0xb7eafb04, _inheritanceMask = 65535, _inheritanceMaskActionOnAttributeSetting = osg::CullSettings::DISABLE_ASSOCIATED_INHERITANCE_MASK_BIT, _computeNearFar = osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR, _cullingMode = 15, _LODScale = 1, _smallFeatureCullingPixelSize = 2, _clampProjectionMatrixCallback = { _ptr = 0x0 }, _nearFarRatio = 0.00050000002374872565, _impostorActive = true, _depthSortImpostorSprites = false, _impostorPixelErrorThreshold = 4, _numFramesToKeepImpostorSprites = 10, _cullMask = 4294965311, _cullMaskLeft = 4294967295, _cullMaskRight = 4294967295 }, members of osg::CullStack: _occluderList = { <std::_Vector_base<osg::ShadowVolumeOccluder, std::allocator<osg::ShadowVolumeOccluder> >> = { _M_impl = { <std::allocator<osg::ShadowVolumeOccluder>> = { <__gnu_cxx::new_allocator<osg::ShadowVolumeOccluder>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::ShadowVolumeOccluder, std::allocator<osg::ShadowVolumeOccluder> >::_Vector_impl: _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0 } }, <No data fields>}, _projectionStack = { _value = { _ptr = 0x1361aa48 }, _stack = { <std::_Vector_base<osg::ref_ptr<osg::RefMatrixd>, std::allocator<osg::ref_ptr<osg::RefMatrixd> > >> = { _M_impl = { <std::allocator<osg::ref_ptr<osg::RefMatrixd> >> = { <__gnu_cxx::new_allocator<osg::ref_ptr<osg::RefMatrixd> >> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::ref_ptr<osg::RefMatrixd>, std::allocator<osg::ref_ptr<osg::RefMatrixd> > >::_Vector_impl: _M_start = 0x8a80980, _M_finish = 0x8a80980, _M_end_of_storage = 0x8a80988 } }, <No data fields>}, _size = 1 }, _modelviewStack = { _value = { _ptr = 0x1361aae8 }, _stack = { <std::_Vector_base<osg::ref_ptr<osg::RefMatrixd>, std::allocator<osg::ref_ptr<osg::RefMatrixd> > >> = { _M_impl = { <std::allocator<osg::ref_ptr<osg::RefMatrixd> >> = { <__gnu_cxx::new_allocator<osg::ref_ptr<osg::RefMatrixd> >> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::ref_ptr<osg::RefMatrixd>, std::allocator<osg::ref_ptr<osg::RefMatrixd> > >::_Vector_impl: _M_start = 0xa8b444e0, _M_finish = 0xa8b444e0, _M_end_of_storage = 0xa8b44520 } }, <No data fields>}, _size = 1 }, _MVPW_Stack = { _value = { _ptr = 0x0 }, _stack = { <std::_Vector_base<osg::ref_ptr<osg::RefMatrixd>, std::allocator<osg::ref_ptr<osg::RefMatrixd> > >> = { _M_impl = { <std::allocator<osg::ref_ptr<osg::RefMatrixd> >> = { <__gnu_cxx::new_allocator<osg::ref_ptr<osg::RefMatrixd> >> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::ref_ptr<osg::RefMatrixd>, std::allocator<osg::ref_ptr<osg::RefMatrixd> > >::_Vector_impl: _M_start = 0xa6929b20, _M_finish = 0xa6929b28, _M_end_of_storage = 0xa6929b60 } }, <No data fields>}, _size = 3 }, _viewportStack = { _value = { _ptr = 0x893ac20 }, _stack = { <std::_Vector_base<osg::ref_ptr<osg::Viewport>, std::allocator<osg::ref_ptr<osg::Viewport> > >> = { _M_impl = { <std::allocator<osg::ref_ptr<osg::Viewport> >> = { <__gnu_cxx::new_allocator<osg::ref_ptr<osg::Viewport> >> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::ref_ptr<osg::Viewport>, std::allocator<osg::ref_ptr<osg::Viewport> > >::_Vector_impl: _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0 } }, <No data fields>}, _size = 1 }, _referenceViewPoints = { _value = { _v = {0, 0, 0} }, _stack = { <std::_Vector_base<osg::Vec3f, std::allocator<osg::Vec3f> >> = { _M_impl = { <std::allocator<osg::Vec3f>> = { <__gnu_cxx::new_allocator<osg::Vec3f>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::Vec3f, std::allocator<osg::Vec3f> >::_Vector_impl: _M_start = 0xa5b69780, _M_finish = 0xa5b6978c, _M_end_of_storage = 0xa5b69840 } }, <No data fields>}, _size = 2 }, _eyePointStack = { _value = { _v = {-2694502, -4263936.5, 3891911.75} }, _stack = { <std::_Vector_base<osg::Vec3f, std::allocator<osg::Vec3f> >> = { _M_impl = { <std::allocator<osg::Vec3f>> = { <__gnu_cxx::new_allocator<osg::Vec3f>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::Vec3f, std::allocator<osg::Vec3f> >::_Vector_impl: _M_start = 0xa69e3100, _M_finish = 0xa69e3100, _M_end_of_storage = 0xa69e31c0 } }, <No data fields>}, _size = 1 }, _viewPointStack = { _value = { _v = {-2694502, -4263936.5, 3891911.75} }, _stack = { <std::_Vector_base<osg::Vec3f, std::allocator<osg::Vec3f> >> = { _M_impl = { <std::allocator<osg::Vec3f>> = { <__gnu_cxx::new_allocator<osg::Vec3f>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::Vec3f, std::allocator<osg::Vec3f> >::_Vector_impl: _M_start = 0xa84e2910, _M_finish = 0xa84e2910, _M_end_of_storage = 0xa84e29d0 } }, <No data fields>}, _size = 1 }, _clipspaceCullingStack = { <std::_Vector_base<osg::CullingSet, std::allocator<osg::CullingSet> >> = { _M_impl = { <std::allocator<osg::CullingSet>> = { <__gnu_cxx::new_allocator<osg::CullingSet>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::CullingSet, std::allocator<osg::CullingSet> >::_Vector_impl: _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0 } }, <No data fields>}, _projectionCullingStack = { <std::_Vector_base<osg::CullingSet, std::allocator<osg::CullingSet> >> = { _M_impl = { <std::allocator<osg::CullingSet>> = { <__gnu_cxx::new_allocator<osg::CullingSet>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::CullingSet, std::allocator<osg::CullingSet> >::_Vector_impl: _M_start = 0x8a80990, _M_finish = 0x8a809fc, _M_end_of_storage = 0x8a80b40 } }, <No data fields>}, _modelviewCullingStack = { <std::_Vector_base<osg::CullingSet, std::allocator<osg::CullingSet> >> = { _M_impl = { <std::allocator<osg::CullingSet>> = { <__gnu_cxx::new_allocator<osg::CullingSet>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::CullingSet, std::allocator<osg::CullingSet> >::_Vector_impl: _M_start = 0xa3403988, _M_finish = 0xa3403e98, _M_end_of_storage = 0xa3404048 } }, <No data fields>}, _index_modelviewCullingStack = 2, _back_modelviewCullingStack = 0xa34039f4, _frustumVolume = -1, _bbCornerNear = 1, _bbCornerFar = 6, _identity = { _ptr = 0x89fabb8 }, _reuseMatrixList = { <std::_Vector_base<osg::ref_ptr<osg::RefMatrixd>, std::allocator<osg::ref_ptr<osg::RefMatrixd> > >> = { _M_impl = { <std::allocator<osg::ref_ptr<osg::RefMatrixd> >> = { <__gnu_cxx::new_allocator<osg::ref_ptr<osg::RefMatrixd> >> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::ref_ptr<osg::RefMatrixd>, std::allocator<osg::ref_ptr<osg::RefMatrixd> > >::_Vector_impl: _M_start = 0xa2fc2d10, _M_finish = 0xa2fc39d4, _M_end_of_storage = 0xa2fc3d10 } }, <No data fields>}, _currentReuseMatrixIndex = 60 }, members of osgUtil::CullVisitor: _rootStateGraph = { _ptr = 0x89fa7e0 }, _currentStateGraph = 0x19e61888, _rootRenderStage = { _ptr = 0x89fa830 }, _currentRenderBin = 0x89fa830, _renderBinStack = { <std::_Vector_base<osgUtil::RenderBin*, std::allocator<osgUtil::RenderBin*> >> = { _M_impl = { <std::allocator<osgUtil::RenderBin*>> = { <__gnu_cxx::new_allocator<osgUtil::RenderBin*>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osgUtil::RenderBin*, std::allocator<osgUtil::RenderBin*> >::_Vector_impl: _M_start = 0x8a806f0, _M_finish = 0x8a806f0, _M_end_of_storage = 0x8a806f8 } }, <No data fields>}, _computed_znear = 3.4028234663852886e+38, _computed_zfar = -3.4028234663852886e+38, _reuseRenderLeafList = { <std::_Vector_base<osg::ref_ptr<osgUtil::RenderLeaf>, std::allocator<osg::ref_ptr<osgUtil::RenderLeaf> > >> = { _M_impl = { <std::allocator<osg::ref_ptr<osgUtil::RenderLeaf> >> = { <__gnu_cxx::new_allocator<osg::ref_ptr<osgUtil::RenderLeaf> >> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::ref_ptr<osgUtil::RenderLeaf>, std::allocator<osg::ref_ptr<osgUtil::RenderLeaf> > >::_Vector_impl: _M_start = 0xa34496b8, _M_finish = 0xa344a600, _M_end_of_storage = 0xa344a6b8 } }, <No data fields>}, _currentReuseRenderLeafIndex = 36, _numberOfEncloseOverrideRenderBinDetails = 0, _renderInfo = { _state = { _ptr = 0x89f7e50 }, _view = { <osg::Observer> = { _vptr.Observer = 0xb802f488 }, members of osg::observer_ptr<osg::View>: _ptr = 0x893e478 }, _cameras = { <std::_Vector_base<osg::Camera*, std::allocator<osg::Camera*> >> = { _M_impl = { <std::allocator<osg::Camera*>> = { <__gnu_cxx::new_allocator<osg::Camera*>> = {<No data fields>}, <No data fields>}, members of std::_Vector_base<osg::Camera*, std::allocator<osg::Camera*> >::_Vector_impl: _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0 } }, <No data fields>}, _userData = { _ptr = 0x0 } }, _nearPlaneCandidateMap = { _M_t = { _M_impl = { <std::allocator<std::_Rb_tree_node<std::pair<const double, osgUtil::CullVisitor::MatrixPlanesDrawables> > >> = { <__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const double, osgUtil::CullVisitor::MatrixPlanesDrawables> > >> = {<No data fields>}, <No data fields>}, members of std::_Rb_tree<double, std::pair<const double, osgUtil::CullVisitor::MatrixPlanesDrawables>, std::_Select1st<std::pair<const double, osgUtil::CullVisitor::MatrixPlanesDrawables> >, std::less<double>, std::allocator<std::pair<const double, osgUtil::CullVisitor::MatrixPlanesDrawables> > >::_Rb_tree_impl<std::less<double>, false>: _M_key_compare = { <std::binary_function<double, double, bool>> = {<No data fields>}, <No data fields>}, _M_header = { _M_color = std::_S_red, _M_parent = 0x0, _M_left = 0x89fab90, _M_right = 0x89fab90 }, _M_node_count = 0 } } } } m. _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org