Hi Robert, I could it reproduce also with the standard osgViewer, I just move around with a 7GB VPB generated terrain so that some page loading/unloading occurs.
here is the call stack of the blocking threads: database thread ----------------------------------------------------------------- ntdll.dll!_ntwaitforsingleobj...@12() + 0x15 bytes ntdll.dll!_ntwaitforsingleobj...@12() + 0x15 bytes > ot12-OpenThreadsd.dll!OpenThreads::Mutex::lock() Line 113 + 0xc bytes > C++ osg66-osgTerraind.dll!osgTerrain::Terrain::getTile(const osgTerrain::TileID & tileID={...}) Line 90 + 0x11 bytes C++ osg66-osgTerraind.dll!osgTerrain::GeometryTechnique::generateGeometry(osgTerrain::GeometryTechnique::BufferData & buffer={...}, osgTerrain::Locator * masterLocator=0x1066cef0, const osg::Vec3d & centerModel={...}) Line 845 + 0x2c bytes C++ osg66-osgTerraind.dll!osgTerrain::GeometryTechnique::init(int dirtyMask=4, bool assumeMultiThreaded=false) Line 119 + 0x20 bytes C++ osg66-osgTerraind.dll!osgTerrain::TerrainTile::init(int dirtyMask=4, bool assumeMultiThreaded=false) Line 184 + 0x29 bytes C++ osg66-osgTerraind.dll!osgTerrain::GeometryTechnique::traverse(osg::NodeVisitor & nv={...}) Line 1455 C++ osg66-osgTerraind.dll!osgTerrain::TerrainTile::traverse(osg::NodeVisitor & nv={...}) Line 159 + 0x24 bytes C++ osg66-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...}) Line 191 + 0x1c bytes C++ osg66-osgDBd.dll!osgDB::DatabasePager::FindCompileableGLObjectsVisitor::apply(osg::Node & node={...}) Line 139 + 0xf bytes C++ osg66-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...}) Line 86 + 0x13 bytes C++ osg66-osgTerraind.dll!osgTerrain::TerrainTile::accept(osg::NodeVisitor & nv={...}) Line 76 + 0x55 bytes C++ osg66-osgd.dll!osg::NodeAcceptOp::operator()(osg::ref_ptr<osg::Node> node={...}) Line 356 + 0x5e bytes C++ osg66-osgd.dll!std::for_each<std::_Vector_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> > >,osg::NodeAcceptOp>(std::_Vector_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> > > _First={_ptr=0x0ec423b8 }, std::_Vector_iterator<osg::ref_ptr<osg::Node>,std::allocator<osg::ref_ptr<osg::Node> > > _Last={_ptr=0x00000000 }, osg::NodeAcceptOp _Func={...}) Line 29 + 0x1f bytes C++ osg66-osgd.dll!osg::PagedLOD::traverse(osg::NodeVisitor & nv={...}) Line 136 + 0x6c bytes C++ osg66-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...}) Line 191 + 0x1c bytes C++ osg66-osgDBd.dll!osgDB::DatabasePager::FindCompileableGLObjectsVisitor::apply(osg::Node & node={...}) Line 139 + 0xf bytes C++ osg66-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...}) Line 86 + 0x13 bytes C++ osg66-osgd.dll!osg::NodeVisitor::apply(osg::LOD & node={...}) Line 156 + 0x13 bytes C++ osg66-osgd.dll!osg::NodeVisitor::apply(osg::PagedLOD & node={...}) Line 161 + 0x13 bytes C++ osg66-osgd.dll!osg::PagedLOD::accept(osg::NodeVisitor & nv={...}) Line 32 + 0x41 bytes C++ osg66-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...}) Line 62 + 0x25 bytes C++ osg66-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...}) Line 191 + 0x1c bytes C++ osg66-osgDBd.dll!osgDB::DatabasePager::FindCompileableGLObjectsVisitor::apply(osg::Node & node={...}) Line 139 + 0xf bytes C++ osg66-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...}) Line 86 + 0x13 bytes C++ osg66-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Line 38 + 0x41 bytes C++ osg66-osgDBd.dll!osgDB::DatabasePager::DatabaseThread::run() Line 742 + 0x34 bytes C++ ot12-OpenThreadsd.dll!OpenThreads::ThreadPrivateActions::StartThread(void * data=0x00e43bac) Line 113 + 0xf bytes C++ msvcr90d.dll!_callthreadstartex() Line 348 + 0xf bytes C msvcr90d.dll!_threadstartex(void * ptd=0x00ed31e8) Line 331 C kernel32.d...@basethreadinitthunk@12() + 0x12 bytes ntdll.dll!___rtluserthreadst...@8() + 0x27 bytes ntdll.dll!__rtluserthreadst...@8() + 0x1b bytes viewer thread ------------------------------------------------------------------- ntdll.dll!_ntwaitforsingleobj...@12() + 0x15 bytes ntdll.dll!_ntwaitforsingleobj...@12() + 0x15 bytes > osg66-osgd.dll!osg::Referenced::signalObserversAndDelete(bool > signalUnreferened=false, bool signalDelete=false, bool doDelete=false) Line > 319 + 0xf bytes C++ ntdll.dll!_rtlentercriticalsect...@4() + 0x168e8 bytes ot12-OpenThreadsd.dll!OpenThreads::Mutex::lock() Line 113 + 0xc bytes C++ osg66-osgTerraind.dll!OpenThreads::ScopedLock<OpenThreads::Mutex>::ScopedLock<OpenThreads::Mutex>(OpenThreads::Mutex & m={...}) Line 31 + 0x2a bytes C++ osg66-osgTerraind.dll!osgTerrain::GeometryTechnique::init(int dirtyMask=4, bool assumeMultiThreaded=false) Line 104 + 0xf bytes C++ osg66-osgTerraind.dll!osgTerrain::TerrainTile::init(int dirtyMask=4, bool assumeMultiThreaded=false) Line 184 + 0x29 bytes C++ osg66-osgTerraind.dll!osgTerrain::GeometryTechnique::traverse(osg::NodeVisitor & nv={...}) Line 1431 C++ osg66-osgTerraind.dll!osgTerrain::TerrainTile::traverse(osg::NodeVisitor & nv={...}) Line 159 + 0x24 bytes C++ osg66-osgTerraind.dll!osgTerrain::Terrain::traverse(osg::NodeVisitor & nv={...}) Line 72 + 0x13 bytes C++ osg66-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...}) Line 191 + 0x1c bytes C++ osg66-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node & node={...}) Line 86 + 0x25 bytes C++ osg66-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Group & node={...}) Line 56 + 0x1a bytes C++ osg66-osgd.dll!osg::NodeVisitor::apply(osg::CoordinateSystemNode & node={...}) Line 101 + 0x13 bytes C++ osg66-osgTerraind.dll!osgTerrain::Terrain::accept(osg::NodeVisitor & nv={...}) Line 34 + 0x55 bytes C++ osg66-osgViewerd.dll!osgViewer::Scene::updateSceneGraph(osg::NodeVisitor & updateVisitor={...}) Line 93 + 0x1e bytes C++ osg66-osgViewerd.dll!osgViewer::Viewer::updateTraversal() Line 950 C++ osg66-osgViewerd.dll!osgViewer::ViewerBase::frame(double simulationTime=1.7976931348623157e+308) Line 631 + 0xf bytes C++ osg66-osgViewerd.dll!osgViewer::ViewerBase::run() Line 599 + 0x1b bytes C++ osg66-osgViewerd.dll!osgViewer::Viewer::run() Line 370 C++ osgviewerd.exe!main(int argc=2, char * * argv=0x00e402f8) Line 226 + 0xe bytes C++ osgviewerd.exe!__tmainCRTStartup() Line 586 + 0x19 bytes C osgviewerd.exe!mainCRTStartup() Line 403 C kernel32.d...@basethreadinitthunk@12() + 0x12 bytes ntdll.dll!___rtluserthreadst...@8() + 0x27 bytes ntdll.dll!__rtluserthreadst...@8() + 0x1b bytes Regards, Andreas ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=27255#27255 _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org