Ngx_openresty devel version 1.4.1.3 released

Hello folks!

I am happy to announce that the new development version of
ngx_openresty, 1.4.1.3, is now released:

http://openresty.org/#Download

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

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

  • upgraded LuaNginxModule to 0.8.6.

    • feature: added new method get_stale to shared dict objects,
      which returns the value (if not freed yet) even if the key
      has already expired. thanks Matthieu T. for the patch.

    • bugfix: segfaults would happen in ngx.req.set_header() and
      ngx.req.clear_header() for HTTP 0.9 requests. thanks Bin
      Wang for the report.

    • bugfix: segfault might happen when reading or writing to a
      response header via the ngx.header.HEADER API in the case
      that the nginx core initiated a 301 (auto) redirect. this
      issue was caused by an optimization in the Nginx core where
      “ngx_http_core_find_config_phase”, for example, does not
      fully initialize the “Location” response header after
      creating the header. thanks Vladimir Protasov for the
      report.

    • bugfix: memory leak would happen when using the ngx.ctx API
      before another Nginx module (other than LuaNginxModule)
      initiates an internal redirect.

    • bugfix: use of the ngx.ctx table in the context of ngx.timer
      callbacks would leak memory.

    • bugfix: the “connect() failed” error message was still
      logged even when lua_socket_log_errors was off. thanks Dong
      Fang Fan for the report.

    • bugfix: we incorrectly returned the 500 error code in our
      output header filter, body filter, and log-phase handlers
      upon Lua code loading errors.

    • bugfix: Lua stack overflow might happen when we failed to
      load Lua code from the code cache.

    • bugfix: the error message was misleading when the
      *_by_lua_file config directives failed to load the Lua file
      specified.

    • bugfix: give the argument of ‘void’ to function definitions
      which has no arguments. thanks Tatsuhiko Kubo for the patch.

    • bugfix: when our “at-panic” handler for Lua VM gets called,
      the Lua VM is not recoverable for future use. so now we try
      to quit the current Nginx worker gracefully so that the
      Nginx master can spawn a new one.

  • upgraded HeadersMoreNginxModule to 0.22.

    • bugfix: segfaults would happen in more_set_input_headers and
      more_clear_input_headers when processing HTTP 0.9 requests.
      thanks Bin Wang for the patch.

    • bugfix: segfault might happen when using more_set_headers or
      more_clear_headers in the case that the Nginx core initiated
      a 301 (auto) redirect. this issue was caused by an
      optimization in the Nginx core where
      “ngx_http_core_find_config_phase”, for example, does not
      fully initialize the “Location” response header after
      creating the header. thanks Brian A. for the report.

  • upgraded SrcacheNginxModule to 0.22.

    • bugfix: we did not always read the client request body
      before initiating srcache_fetch subrequests at the “access
      phase”, which could lead to bad consequences.
  • upgraded EchoNginxModule to 0.46.

    • bugfix: the request body was not discarded properly in the
      content handler when the request body was not read yet.
      thanks Peter Sabaini for the report.

    • bugfix: we did not ensure that the main request body is
      always read before subrequests are initiated, which could
      lead to bad consequences.

    • bugfix: $echo_client_request_headers may evaluate to an
      empty value when the default header buffer (“c->buffer”) can
      hold the request line but not the whole header. thanks KDr2
      for reporting this issue.

    • docs: fixed a typo in Synopsis reported by saighost.

    • docs: use https for github links. thanks Olivier Mengué for
      the patch.

  • upgraded PostgresNginxModule to 1.0rc3.

    • bugfix: compilation error happened with nginx 1.5.3+ because
      the Nginx core changes the “ngx_sock_ntop” API. thanks
      an0ma1ia for the report.

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

http://openresty.org/#ChangeLog1004001

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 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:

http://qa.openresty.org

Enjoy!
-agentzh