[ANN] OpenResty 1.7.7.1 released

Yichun Zhang (agentzh) agentzh at gmail.com
Sun Dec 7 02:30:08 UTC 2014


Hi folks!

I am happy to announce the new formal release, 1.7.7.1, of the OpenResty bundle:

    http://openresty.org/#Download

In this release, we include many important bug fixes in many
components and some small new features as usual.

One highlight of this release is that the Lua call "ngx.flush(true)"
can now work with nginx core's "limit_rate" directive and $limit_rate
variable.

Special thanks go to all our contributors and users for making this happen!

Below is the complete change log for this release, as compared to the
last formal release (1.7.4.1):

 *   upgraded the Nginx core to 1.7.7.

     *   see the changes here: <http://nginx.org/en/CHANGES>

 *   bugfix: applied a patch to the nginx core to fix the memory
     invalid reads when exceeding the pre-configured limits in an
     "ngx_hash_t" hash table.

 *   bugfix: applied a patch to the nginx core to fix a memory
     invalid read regression introduced in nginx 1.7.5+'s resolver.

 *   ./configure: usage text: renamed "--with-luajit=PATH" to
     "--with-luajit=DIR". thanks Dominic for the suggestion.

 *   feature: ./configure: added the default prefix value to the
     usage text.

 *   upgraded LuaJIT to v2.1-20141128:
     https://github.com/openresty/luajit2/tags

     *   imported Mike Pall's latest changes:

         *   feature: FFI: added "ffi.typeinfo()". thanks to Peter
             Colberg.

         *   bugfix: fixed snapshot #0 handling for traces with a
             stack check on entry. this bug might lead to bad
             register overwrites (and eventually segmentation faults
             in GC upon trace exits, at least).

         *   bugfix: FFI: no meta fallback when indexing pointer to
             incomplete struct.

         *   bugfix: fixed fused constant loads under high register
             pressure.

         *   bugfix: fixed DragonFly build (unsupported). thanks to
             Robin Hahling, Alex Hornung, and Joris Giovannangeli.

         *   bugfix: FFI: fixed initialization of unions of subtypes.
             thanks to Peter Colberg.

         *   bugfix: FFI: Fix for cdata vs. non-cdata arithmetic and
             comparisons. thanks to Roman Tsisyk.

         *   optimize: eliminated hmask guard for forwarded HREFK.

     *   debugging: added an (expensive) assertion to check GC
         objects in current stack upon trace exiting. thanks Mike
         Pall. only enabled when building with "-DLUA_USE_ASSERT".

 *   upgraded the ngx_lua module to 0.9.13.

     *   optimize: reduced the pool size of a fake connection from
         the default pool size (16KB) to 128B, affecting
         init_worker_by_lua and ngx.timer.at.

     *   optimize: made fake requests share their connection pools,
         affecting init_worker_by_lua and ngx.timer.at.

     *   feature: the error logger used by ngx.timer.at handlers now
         outputs the "client: xxx, server: xxx" context info for the
         original (true) request creating the timer.

     *   feature: added nginx configuration file names and line
         numbers to the rewrite/access/content/log_by_lua directives'
         Lua chunk names in order to simplify debugging.

     *   feature: ngx.flush(true) now returns the "timeout" and
         "client aborted" errors to the Lua land for the cases that
         writing to the client is timed out or the client closes the
         connection prematurely, respectively.

     *   feature: ngx.flush(true) can now wait on delayed events due
         to nginx's limit_rate config directive or $limit_rate
         variable settings. thanks Shafreeck Sea for the original
         patch.

     *   bugfix: ngx.flush(), ngx.eof(), and some other things did
         not update busy/free chains after calling the output
         filters.

     *   bugfix: ngx_gzip/ngx_gunzip module filters might cause
         ngx.flush(true) to hang until timeout for nginx 1.7.7+ (and
         some other old versions of nginx). thanks Maxim Dounin for
         the help.

     *   bugfix: ngx.get_phase() did not work in the context of
         init_worker_by_lua*.

     *   bugfix: use of ngx.flush(true) with the limit_rate config
         directive or the $limit_rate variable may hang the request
         forever for large volumn of output data. thanks Shafreeck
         Sea for the report.

     *   bugfix: compilation error when PCRE is disabled in the nginx
         build. thanks Ivan Cekov for the report.

     *   bugfix: when syslog was enabled in the error_log directive
         for nginx 1.7.1+, use of init_worker_by_lua or
         ngx.timer.at() would lead to segmentation faults. thanks
         shun.zhang for the report.

     *   bugfix: fixed compilation error with nginx 1.7.5+ because
         nginx 1.7.5+ changes the API in the events subsystem. thanks
         Charles R. Portwood II and Mathieu Le Marec for the report.

     *   bugfix: ngx.req.raw_header(): buffer overflow and the
         "buffer error" exception might happen for massively
         pipelined downstream requests. thanks Dane Knecht for the
         report.

     *   bugfix: ngx.req.raw_header(): we might change nginx's
         internal buffer pointers, which might cause bad
         side-effects.

     *   doc: added a new section, Cocockets Not Available
         Everywhere, under the Known Issues section.

 *   upgraded the lua-resty-dns library to 0.14.

     *   feature: added support for the SPF record type specified by
         RFC 4408. thanks Tom Fitzhenry for the patch.

 *   upgraded the lua-resty-lrucache library to 0.03.

     *   feature: the get() method now also returns the stale value
         as the second returned value if available.

 *   upgraded the lua-resty-lock library to 0.04.

     *   bugfix: the shared dictionary would incorrectly get unref'd
         for multiple times when the lock() and/or unlock() methods
         are called more than once. thanks Peng Wu for the report and
         Dejiang Zhu for the patch.

 *   upgraded the ngx_echo module to 0.57.

     *   bugfix: $echo_client_request_headers: buffer overflow and
         the "buffer error" exception might happen for massively
         pipelined downstream requests.

     *   bugfix: $echo_client_request_headers: we might change
         nginx's internal buffer pointers, which might cause bad
         side-effects.

 *   upgraded the ngx_drizzle module to 0.1.8.

     *   bugfix: fixed compilation error with nginx 1.7.5+ because
         nginx 1.7.5+ changes the API in the events subsystem.

 *   upgraded the ngx_postgres module to 1.0rc5.

     *   bugfix: fixed compilation error with nginx 1.7.5+ because
         nginx 1.7.5+ changes the API in the events subsystem.

 *   upgraded the ngx_coolkit module to 0.2rc2.

     *   bugfix: compilation failed when PCRE was disabled in the
         nginx build.

     *   feature: added the "$location" variable, by Piotr Sikora.

 *   upgraded the ngx_set_misc module to 0.27.

     *   bugfix: bugfix: fixed build failure when
         "--with-mail_ssl_module" is specified while
         "--with-http_ssl_module" is not. thanks Xiaochen Wang for
         the report.

The HTML version of the change log with lots of helpful hyper-links
can be browsed here:

    http://openresty.org/#ChangeLog1007007

OpenResty (aka. ngx_openresty) is a full-fledged web application
server by bundling the standard Nginx core, Lua/LuaJIT, 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

Enjoy!
-agentzh



More information about the nginx mailing list