Hello,
We are using the luaproc idea
(http://luaforge.net/projects/luaproc/) to implement a true
multi-threading application using LUA. Up to now, it was working
perfectly with LUA 5.1 and luaJIT 2.0-beta6.
In order to stay inline with the latest LUAJIT developement, i
tested our application with LUAJIT2.0 beta8, and we are facing an
issue (bug ?).
The symptoms :
- luaproc makes extensive use of lua_yield/lua_resume when
exchanging messages thru channels.
- After a few seconds of message exchanges, the application
failed on a CHANNEL.receive call
- I have printed the stack using the debug interface, but it
does not display anything interesting, apart that it fails in a
CHANNEL.receive
- Internally, the CHANNEL.receive fails because the C
lua_resume() function returns LUA_ERRRUN.
- This behavior does not appear on Windows 32 bits
- This behavior does not appear on Linux 64 bits when i switch
off the LUAJIT (ie -DLUAJIT_DISABLE_JIT)
- When i activate the assert mode WITH the LUAJIT activated, i
get the following assert message :
- lj_api.c : 41 index2adre: Assertion 'idx != 0 &&
-idx <= L->top - L->base' failed.
- The same behavior happens also with luaJIT beta7.
Any idea or hint on that ?
Rgds, S. FABRE
--
=================================
Sylvain FABRE
sylvain.fabre@inpixal.com
Fixe: 09 72 11 30 24
Mobile: 06 30 12 72 34
Fax : 09 72 11 10 71
=================================
|