OpenResty® Scalable Web Platform by Extending NGINX with Lua

ChangeLog 1.4.1

Yichun Zhang , 07 Aug 2013 (created 18 Jul 2013)

Mainline Version 1.4.1.3 - 6 August 2013

  • upgraded Lua Nginx Module 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 Tourne 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 Lua Nginx Module) 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 Headers More Nginx Module 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 Akins for the report.
  • upgraded Srcache Nginx Module 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 Echo Nginx Module 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 Postgres Nginx Module 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.

Mainline Version 1.4.1.1 - 18 July 2013