Ngx_openresty devel version released

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

Below is the complete change log for this release, as compared to the
(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 thanks Matthieu T. 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 T. 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
bundling the standard Nginx core, lots of 3rd-party Nginx modules and
libraries, as well as most of their external dependencies. See
homepage for details:

We have been running extensive testing on our Amazon EC2 test cluster
ensure that all the components (including the Nginx core) play well
together. The latest test report can always be found here:

Have fun!