[osg-users] CullVisitor locks up on NaN matrix

From: Jason Daly <jdaly_at_ist.ucf.edu>
Date: Tue Jan 25 2005 - 11:22:59 PST

Hi all,

An upgrade from 0.9.6-2 to 0.9.8-2 has revealed a latent problem in my
application. Apparently, in certain cases my app would set the matrix
in a MatrixTransform node to an invalid matrix (specifically, a matrix
with the first 3 rows containing NaN). In version 0.9.6-2, this problem
went unnoticed because it was happening to a very small object that took
up a very small subgraph of the scene, so visually it would just
disappear. However, when I switched to 0.9.8-2, the cull traversal
started locking up and never returning. When I compiled 0.9.8 in debug
mode, it no longer locked up on the bad matrix, and essentially behaved
like 0.9.6 again.

Now, I've been able to trace and fix the problem in my app, and I
realize that the problem did not originate with OSG. However, I just
wanted to bring it up in case there was any desire to examine why
version 0.9.6 seemed more robust in this regard than 0.9.8.

Here is a stack trace that (hopefully) shows roughly where it was
getting stuck. I Ctrl-\'d the app when it locked up on several
different runs, and the stack trace was always the same. My system is a
Dell 530 with dual 1.5 GHz Xeons and a GeForce FX 5600 running Fedora
Core 3.

(gdb) where
#0 0x00e4ec24 in osg::CullStack::pushCullingSet ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#1 0x00e4fb99 in osg::CullStack::pushModelViewMatrix ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#2 0x00b42a01 in osgUtil::CullVisitor::apply ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosgUtil.so
#3 0x00e9c3dd in osg::MatrixTransform::accept ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#4 0x00e85bfe in osg::Group::traverse ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#5 0x00b3de69 in osgUtil::CullVisitor::apply ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosgUtil.so
#6 0x00e86b79 in osg::Group::accept ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#7 0x00e85bfe in osg::Group::traverse ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#8 0x00b3de69 in osgUtil::CullVisitor::apply ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosgUtil.so
#9 0x00e86b79 in osg::Group::accept ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#10 0x00e85bfe in osg::Group::traverse ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#11 0x00b3de69 in osgUtil::CullVisitor::apply ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosgUtil.so
#12 0x00e86b79 in osg::Group::accept ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#13 0x00e85bfe in osg::Group::traverse ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#14 0x00b3de69 in osgUtil::CullVisitor::apply ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosgUtil.so
#15 0x00e86b79 in osg::Group::accept ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#16 0x00e85bfe in osg::Group::traverse ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#17 0x00b3de69 in osgUtil::CullVisitor::apply ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosgUtil.so
#18 0x00e86b79 in osg::Group::accept ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosg.so
#19 0x00b7deb0 in osgUtil::SceneView::cullStage ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosgUtil.so
#20 0x00b7a922 in osgUtil::SceneView::cull ()
   from /ist/projects/nve/tools/OpenSceneGraph-0.9.8-2/lib/libosgUtil.so

I took a glance at the functions involved, but I couldn't really see
where it could be getting stuck. If there's anything else I can do to
help, let me know.

-- 
--"J"
"I'm a castaway stranded in a desolate land,
 I can see the footprints in the virtual sand."
	--Neil Peart
_______________________________________________
osg-users mailing list
osg-users@openscenegraph.net
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/
Received on Tue Jan 25 11:23:35 2005

This archive was generated by hypermail 2.1.8 : Tue Jan 25 2005 - 11:23:42 PST