Hello, I am bumping into this stack trace issue when using luajit for the Lua embedding in C application. I looked up the mailing list archive and did not find any such similar reported issue. Appreciate some pointers to resolve the issue. The problem does not happens when using the PUC Lua interpreter lua5.1 or 5.2. Issue crops up when using libluajit-5.1. The problem is that luajit messes up the top two stack frames when I attempt to dump the stack trace. The error is triggered in a C api call from the Lua environment. The luajit does not report the top frame which is a C function correctly. It starts the trace from the Lua function calling this C function and also it incorrectly marks this Lua function as a C function. Correct stack trace when using lua5.1 from PUC =========================================== C01 22:10:21.593501 [http_lua_run_thread:1340] *1 error [0] - lua entry thread aborted: runtime error: rewrite_by_lua:2: bad argument #1 to 'redirect' (string expected, got function) stack traceback: coroutine 0: [C]: in function 'redirect' rewrite_by_lua:2: in function 'c_valid' rewrite_by_lua:2: in function 'foo' rewrite_by_lua:2: in function 'bar' rewrite_by_lua:2: in function <rewrite_by_lua:1> Incorrect stack trace when using laujit5.1 =============================== C00 22:31:04.200127 [http_lua_run_thread:1340] *1 error [0] - lua entry thread aborted: runtime error: rewrite_by_lua:2: bad argument #1 to 'c_valid' (string expected, got function) stack traceback: coroutine 0: [C]: in function 'c_valid' <----- c_valid is a Lua function calling C function 'redirect' rewrite_by_lua:2: in function 'foo' rewrite_by_lua:2: in function 'bar' rewrite_by_lua:2: in function <rewrite_by_lua:1> Lua snippet used in the test "function bar () foo() end function foo () c_valid() end function c_valid () num = xyz.req.http_version(); if num == 1.0 then return xyz.redirect(foo, 307); end end bar()" Best Suraj System information ------------------------- I use to two VMs to develop and deploy the application respectively. On the development VM, I used the package "apt-get install libluajit-5.1-dev". On the VM where application is deployed, I used the package "apt-get install libluajit-5.1-2" The VMs (running on VMware ESXi 5.1.0) use ------------------------------------------------------------- Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-29-generic x86_64) CPU ------ Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz Compiler used on dev VM ----------------------------------- gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 Actual code which dumps the stack trace ------------------------------------------------------- (co is the coroutine created by the parent Lua vm L) lua_Debug ar; int level; level = 0; while (lua_getstack(co, level++, &ar)) { lua_checkstack(L, 5); if (level > NGX_HTTP_LUA_BT_DEPTH) { lua_pushliteral(L, "\n\t..."); break; } lua_pushliteral(L, "\n\t"); lua_getinfo(co, "Snl", &ar); lua_pushfstring(L, "%s:", ar.short_src); : : }