Hello!
2014-03-19 0:18 GMT-07:00 coderesty:
>
> 我下载最新的ngx_openresty-1.5.8.1.tar.gz , 发现lua_code_cache off;之后, 不core掉,
老版本的 ngx_lua 的 lua_cache_cache off 在和使用了 FFI 的 Lua module(比如
lua-resty-core)一起使用时确实会崩溃。
新版本的 ngx_lua 在 lua_code_cache off 模式下使用了每个请求一个 Lua VM 实例的做法,所以不会再有崩溃的问题。
值得提醒的是,lua_code_cache off 只应在简单的开发过程中使用,因为性能开销巨大,而且因为每请求一个 Lua VM
实例,所以请求之间是无法通过 Lua VM 来保持状态的。
> 但是锁不起作用, 并没有锁住,
> 第一次请求锁住, 没有解锁, 第二次请求依然能够锁住.
> 发现lua-resty-lock和lua_code_cache的打开与关闭的关系很大.
>
我使用 lua_code_cache off 运行了 lua-resty-lock 的整个测试集,所有测试用例都通过了。由于
lua-resty-lock 使用共享内存来保持锁的状态,所以 lua_code_cache off 不应对该库的功能产生影响。
请提供一个完整的最小化的独立用例,以及复现问题所需的详细的步骤。尽量去除无关的外部依赖和细节,以便我可以在我本地复现你看到的问题。
另外,值得一提的是,最新的 openresty 是 1.5.11.1rc2:
http://openresty.org/download/ngx_openresty-1.5.11.1rc2.tar.gz
> 另外我用的是—with-luaji, 是不是luajit和lua-resty-lock不兼容呀
>
作为 lua-resty-lock 的作者,我要告诉你的是,lua-resty-lock 只支持 LuaJIT. 这在文档中有明确说明:
https://github.com/agentzh/lua-resty-lock#prerequisites
Regards,
-agentzh
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty+subscribe@googlegroups.com
发言: 请发邮件到 openresty@googlegroups.com
退订: 请发邮件至 openresty+unsubscribe@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html