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
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org