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

Reply via email to