[ODE] Crash in QuickStep SOR_LCP (0.5)

Matthew Harmon matt at ev-interactive.com
Thu Jul 27 14:33:28 MST 2006

Hi All:

I'm getting an intermittent and hard to reproduce crash in ODE and was
wondering if this is the infamous dRandInt() problem.

- ODE 0.5 no interim updates applied.
- Win32 / Xbox DirectX application in single-precision mode.
- Crashes in QuickStep.cpp SOR_LCP() right here (first line) where "index"
is some big number (like 123455):

	if (findex[index] >= 0) {
	hi[index] = dFabs (hicopy[index] * lambda[findex[index]]);
		lo[index] = -hi[index];

- The first item in findex is -1, which should have terminated the loop had
index been good.
- Stack trace below if helpful.

My plan was to add the new dRandInt() from ODE 0.6.  Does this seem
appropriate / safe?  Any different advice here?

Thanks so much,


Here's the stack dump:

SOR_LCP(int m=30, int nb=1, ...)  Line 454 + 0x3
dxQuickStepper(dxWorld * world=0x00ca9dc0, ...)  Line 696
dxProcessIslands(dxWorld * world=0x00ca9dc0,...)  Line 242 + 0x15
dWorldQuickStep(dxWorld * w=0x00ca9dc0, float stepsize=0.0055555557)  Line
1264 + 0x10

More information about the ODE mailing list