lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Renaud Métrich wrote:
> When compiling LuaJIT with assertions (in 32bits mode at least), an
> assertion fails when repetitively connecting to the http server:
> 
> luajit: lj_record.c:108: rec_check_slots: Assertion `((((((tr))>>24)
> & IRT_TYPE) - (TRef)(IRT_NUM) <= (TRef)(IRT_INT-IRT_NUM)))' failed.

This looks like a problem with the JIT compiler. The recorded VM
state does not match the actual VM state, which is a bug.

Try -jdump from the command line. Have a look at the last trace it
tries to record before aborting. I'll probably need to see that
part of the Lua code and any relevant FFI definitions (better mail
it directly to me, if it's longer than a couple of lines).

> the more print statements I add, the less often the assertion
> fails.

print() aborts a trace, i.e. prevents JIT compilation of the
surrounding code. Or use io.write(), which is compiled.

--Mike