[ANN] ngx_openresty devel version released

agentzh agentzh at gmail.com
Sat Dec 8 08:32:32 UTC 2012

Hello, folks!

I am happy to announce the new development version of ngx_openresty,


Special thanks go to all our contributors and users for helping make this

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

 *   upgraded LuaNginxModule to 0.7.7.

     *   feature: added ngx.req.start_time() to return the request
         starting time in seconds (the milliseconds part is the
         decimal part just as in ngx.now). thanks Matthieu Tourne for
         the patch.

     *   feature: setting ngx.status or calling ngx.exit(N) (where "N
         >= 300") after sending out response headers no longer yields
         a Lua exception but only leaves an error message in the
         error.log file, which is useful for Lua land debugging.
         thanks Matthieu Tourne for requesting this.

     *   feature: the user can now call ngx.exit(444) to abort
         pending subrequests in other "light threads" from within a
         "light thread".

     *   feature: added new dtrace static probe

     *   bugfix: ngx.location.capture and ngx.location.capture_multi
         might hang infinitely because the parent request might not
         be waken up right after the first time the "post_subrequest"
         callback was called.

     *   bugfix: the "light thread" object created by
         ngx.thread.spawn() or ngx.on_abort() might be prematurely
         collected by the Lua GC because we did not correctly
         register its coroutine object into the Lua regsitry table.
         this bug may crash the Lua VM and Nginx workers under load.
         thanks Zhu Dejiang for reporting this issue.

     *   bugfix: ngx.thread.wait() might hang infinitely when more
         than 4 user "light threads" are created in the same request
         handler due to the incorrect use of "ngx_array_t" for
         "ngx_list_t". thanks Junwei Shi for reporting this issue.

     *   bugfix: when a user coroutine or user "light thread" dies
         with an error, our Lua backtrace dumper written in C may
         access one of its dead parent threads (if any) which could
         lead to segmentation faults.

     *   bugfix: ngx.exit(N) incorrectly threw out Lua exceptions
         when "N" was 408, 499, or 444 and the response header was
         already sent. thanks Kindy Lin for reporting this issue.

     *   bugfix: when the user callback function registered by
         ngx.on_abort() discarded the client abort event, the request
         would be aborted by force when the next client abort event

     *   bugfix: an English typo in the error message for

 *   applied slab_alloc_no_memory_as_info.patch to lower the log
     level of the error message "ngx_slab_alloc() failed: no memory"
     from "crit" to "info".

 *   bugfix: the upstream_pipelining patch introduced a regression
     that when "upstream_next" is in action, Nginx might hang. thanks
     Kindy Lin for reporting this issue.

 *   bugfix: include the latest chagnes in the LuaJIT 2.0 git
     repository (up to git commit 2ad9834d).

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 been running extensive testing on our Amazon EC2 test cluster and
ensure that all the components (including the Nginx core) play well
together. The latest test report can always be found here:


Have fun!

More information about the nginx mailing list