[ANN] OpenResty 18.104.22.168 released
Yichun Zhang (agentzh)
agentzh at gmail.com
Tue Apr 29 21:47:12 UTC 2014
I am happy to announce the new 22.214.171.124 release of the OpenResty bundle:
Special thanks go to all our contributors for making this happen!
Our current focus has still been on improving both performance and stability.
And most of our OpenResty sub-projects' git repositories have been
moved over to the GitHub account "openresty":
Thanks Kindy Lin for acquiring this GitHub account :)
Below is the complete change log for this release, as compared to the
last formal release, 126.96.36.199:
* upgraded the Nginx core to 1.5.12.
* see the changes here: <http://nginx.org/en/CHANGES>
* upgraded LuaJIT to v2.1-20140423 (see
* bugfix: prevent adding side traces for stack checks. (Mike
pall) this could cause internal assertion failure in the JIT
compiler while replaying snapshots in very obscure cases:
"lj_snap.c:497: lj_snap_replay: Assertion `ir->o == IR_CONV
&& ir->op2 == ((IRT_NUM<<5)|IRT_INT)' failed."
* bugfix: fixed FOLD of string concatenations. (Mike Pall)
this issue was reported by leafo and could lead to invalid
string results in special cases while compiling string
* bugfix: FFI: fixed cdata equality comparison against strings
and other Lua types. (Mike Pall)
* bugfix: fixed top slot calculation for snapshots with
continuations. (Mike Pall) this was a bug in snapshot
generation, but it only surfaced with trace stitching. it
could cause Lua stack overwrites in special cases.
* bugfix: PPC: don't use mcrxr on PPE. (Mike Pall)
* bugfix: prevent GC estimate miscalculation due to buffer
growth. (Mike Pall)
* bugfix: fixed the regression introduced by the previous fix
for "reuse of SCEV results in FORL". (Mike Pall) this could
cause internal assertion failure in the JIT compiler:
"lj_record.c:68: rec_check_ir: Assertion `op2 >= nk'
* bugfix: fixed alias analysis for "table.len" vs.
"table.clear". (Mike Pall) this could cause "table.len" to
return incorrect values (nonzero values) after "table.clear"
* bugfix: fixed the compatibility with DragonFlyBSD. thanks
lhmwzy for the patch.
* feature: allow non-scalar cdata to be compared for equality
by address. (Mike Pall)
* upgraded LuaUpstreamNginxModule to 0.02.
* bugfix: upstream names did not support taking a port number.
thanks magicleo for the report.
* upgraded Redis2NginxModule to 0.11.
* change: now we always ignore client aborts for
collaborations with other modules like SrcacheNginxModule.
thanks akamatgi for the report.
* upgraded LuaNginxModule to 0.9.7.
* bugfix: when lua_code_cache was off, cosocket:setkeepalive()
might lead to segmentation faults. thanks Kelvin Peng for
* refactor: improved the error handling and logging in the Lua
code loader and closure factory.
* change: added stronger assertions to the stream-typed
* optimize: we no longer call "ngx_pfree()" in our own
* optimize: we no longer clear the pointer "ctx->user_co_ctx"
* upgraded EchoNginxModule to 0.53.
* bugfix: use of empty arguments after the "-n" option of the
echo directive (and its friends) might cause subsequent
arguments to get discarded. thanks Lice Pan for the report
* upgraded FormInputNginxModule to 0.08.
* bugfix: segmentation fault might happen when
"set_form_input_multi" was used while no proper
"Content-Type" request header was given.
* upgraded LuaRestyWebSocketLibrary to 0.03.
* optimize: added a minor optimization in the recv_frame()
method. thanks yurnerola for the catch.
* upgraded LuaRestyCoreLibrary to 0.0.6.
* optimize: ngx.re.sub/ngx.re.gsub: now we avoid constructing
new Lua strings for the regex cache keys, which gives 5%
speedup for trivial use cases.
* optimize: ngx.re.match/ngx.re.find: avoided constructing a
new Lua string for the regex cache key by switching over to
a cascaded 2-level hash table, which gives 22% speedup for
simple use cases.
* upgraded LuaRestyLockLibrary to 0.03.
* bugfix: prevented using cdata directly as table keys.
* upgraded LuaRestyStringLibrary to 0.09.
* bugfix: avoided using the "module" builtin function to
define lua modules. thanks lhmwzy for the original patch.
The HTML version of the change log with lots of helpful hyper-links
can be browsed here:
OpenResty (aka. ngx_openresty) is a full-fledged web application
server by bundling the standard Nginx core, lots of 3rd-party Nginx
modules and Lua libraries, as well as most of their external
dependencies. See OpenResty's homepage for details:
We have run extensive testing on our Amazon EC2 test cluster and
ensured that all the components (including the Nginx core) play well
together. The latest test report can always be found here:
Just a side note: I recently added the "Profiling page" to the
openresty.org site where you can find useful Flame Graph tools for
analyzing and optimizing OpenResty web apps' online performance (as
well as ordinary nginx and even other C/C++ user processes):
We've been heavily relying on these tools to get our Lua CDN and Lua
WAF faster and faster in the past year at CloudFlare.
More information about the nginx