We've run into an issue with a debug stack frame self-reference that causes
and infinite loop. I can't seem to figure out how we get into this state,
but this addresses it. Anyone have any idea why we're seeing this and if
this work-around is correct or covering up some other problem?
diff --git a/src/lj_debug.c b/src/lj_debug.c
index 959dc28..c8710cb 100644
--- a/src/lj_debug.c
+++ b/src/lj_debug.c
@@ -40,6 +40,11 @@ cTValue *lj_debug_frame(lua_State *L, int level, int
*size)
if (frame_isvarg(frame))
level++; /* Skip vararg pseudo-frame. */
frame = frame_prevd(frame);
+
+ /* bail on infinite loop */
+ if (frame == nextframe) {
+ break;
+ }
}
}
*size = level;
--
Theo Schlossnagle
http://omniti.com/is/theo-schlossnagle