Hi folks! I am happy to announce the new formal release, 1.7.2.1, of the OpenResty bundle:
http://openresty.org/#Download Special thanks go to all our contributors for making this happen! Below is the complete change log for this release, as compared to the last formal release, 1.7.0.1: * upgraded the Nginx core to 1.7.2. * see the changes here: <http://nginx.org/en/CHANGES> * upgraded LuaJIT to v2.1-20140707: https://github.com/openresty/luajit2/tags * imported Mike Pall's latest bug fixes and features: * feature: compile debug.getmetatable(). Thanks to Karel Tuma. * bugfix: Fix ABC elimination (for negative table indexes, for example). * bugfix: FFI: Fix compilation of reference field access. * bugfix: FFI: fixed frame traversal for backtraces with FFI callbacks. * bugfix: x86: lj_math_random_step() clobbers XMM regs on OSX Clang. * bugfix: fixed debug info for main chunk of stripped bytecode. * upgraded the lua-resty-core library to 0.0.8. * feature: resty.core.regex: use "resty.lrucache" for the compiled regex cache for ngx.re.find and ngx.re.match in order to prevent pathalogical performance when the number of regexes has exceeded lua_regex_cache_max_entries. * optimize: resty.core.regex: removed one obsolete assertion that was for a LuaJIT bug (already fixed). * upgraded the lua-resty-dns library to 0.12. * feature: added support for the SRV resource record type (see RFC 2782). thanks Torbjörn Norinder for the patch. * upgraded the lua-resty-upstream-healthcheck library to 0.02. * bugfix: for bad status lines, we could throw out the "bad argument #2 to 'sub'" error, reported by George Bashi. * doc: avoided using the "\r\n" sequence in Lua long brackets because Lua would squeeze it to "\n", unfortunately. thanks George Bashi for the report. * doc: made it clear that multiple "upstream {}" blocks' checkers can share a single shm zone. thanks Robert Paprocki for asking. * doc: now we need to turn off lua_socket_log_errors explicitly in code examples. * upgraded the lua-resty-lrucache library to 0.02. * feature: added an alternative implementation using FFI-based hash-table in the form of the new class "resty.lrucache.pureffi", which is much faster than the default "resty.lrucache" class when there are a lot of key variations. thanks Shuxin Yang for the patch. * upgraded the ngx_lua module to 0.9.10. * feature: stream-typed cosockets are now full-duplex: a reader "light thread" and a writer "light thread" can operate on the same cosocket simultaneously. thanks shun zhang and aviramc for the original patches. * feature: added new API function ngx.thread.kill() for killing a user "light thread". thanks aviramc for the original patch. * bugfix: the "coroutine" module table introduced by "require('coroutine')" was not working in our Lua context. thanks Paul K and Pierre-Yves Gérardy for the report. * bugfix: fixed the initial size of the ngx.worker table and the misleading comment due to a copy&paste mistake. thanks Suraj Jaiswal for the report. * bugfix: the "coctx cleanup" handler might not be called before being overidden by other operations. this could happen when failing to yield in an error handler (for xpcall). * bugfix: fixed an incorrect error message. thanks doujiang for the patch. * bugfix: fixed a compilation error regression when using the Microsoft Visual C/C++ compiler. thanks itpp16 for the patch. * bugfix: we should use "c->buffered & NGX_HTTP_LOWLEVEL_BUFFERED" instead of "c->buffered" for testing if the downstream connection is busy writing. * bugfix: we did not handle an out-of-memory case in ngx.req.set_body_data(). * bugfix: ngx_http_lua_chain_get_free_buf(): avoided returning zero-sized memory bufs. * bugfix: body_filter_by_lua*: we might incorrectly pass zero-size bufs (in the form of "special sync bufs") at the beginning of a chain, which could get stuck in the buffer of "ngx_http_writer_filter_module" (or in other words, being "busy") while could still get recycled in the content handler (like content_by_lua), leading to buffer corruptions. thanks westhood for the report and patch. * bugfix: we did not clear all the fields in the "ngx_buf_t" C struct when recycling chain link buffers. * bugfix: the *_by_lua_file directives failed to load .lua files of exactly the size "n*LUAL_BUFFERSIZE" bytes with the error "'end' expected (to close 'function' at line 1) near '<eof>'". thanks kworr for the report. * change: now we always iterate through all the user light threads to ensure all threads are de-anchored even when the "uthreads" counter gets out of sync. also added an assertion on the "uthreads" counter. * change: now we turn off our C-land assertions by default unless the user explicitly specifies the C compiler option "-DNGX_LUA_USE_ASSERT". * change: throw out the "no memory" Lua error consistently (instead of "out of memory") when failing to allocate on the nginx side. * change: we now still call "ngx_pfree()" in our own "pcre_free" hook. * doc: documented the "NGX_LUA_USE_ASSERT" and "NGX_LUA_ABORT_AT_PANIC" C macros. * doc: added performance notes to the sections for the ngx.var and ngx.ctx API. * doc: documented the types of Lua values that can be passed to the ngx.timer callback functions. * upgraded the ngx_form_input module to 0.09. * bugfix: fixed warnings from the Microsoft Visual C/C++ compiler. thanks itpp16 for the report. * upgraded the ngx_echo module to 0.54. * bugfix: the "unknown option for echo_subrequest_async" error was thrown when Nginx variables were used in both the "method" argument and URI argument of the echo_subrequest directive (and etc). thanks Utkarsh Upadhyay for the report. * bugfix: fixed a misleading error message. * upgraded the ngx_srcache module to 0.28. * feature: log an error message when srcache_store subrequest has an error or returns a bad HTTP status code. thanks Yann Coleu for the report. * doc: typo fix from javasboy. * upgraded the ngx_memc module to 0.15. * bugfix: we did not log error messages for invalid values of $memc_flags, $memc_exptime, and $memc_value, leading to hard-to-debug HTTP 400 status errors. thanks Yann Coleu for the report. * bugfix: "./configure --without-lua_resty_dns" did not work as declared. thanks Vitaly for the report. * bugfix: use "cc" as the default C compiler for LuaJIT and Lua C libraries because modern FreeBSD 10 has no gcc by default and its clang is already featureful enough to compile everything. thanks Stefan Parvu for the suggestion. * change: "./configure --with-debug" now also passes the extra C compiler options "-DNGX_LUA_USE_ASSERT -DNGX_LUA_ABORT_AT_PANIC" to the the ngx_lua module build. The HTML version of the change log with lots of helpful hyper-links can be browsed here: http://openresty.org/#ChangeLog1007002 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: http://openresty.org/ 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: http://qa.openresty.org Have fun! -agentzh _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx