Ngx_openresty devel version 1.2.1.9 released

Hi, folks!

After more than two weeks’ active development, I’m pleased to announce
the
new development version of ngx_openresty, 1.2.1.9:

OpenResty® - Open source

Below is the complete change log for this release, as compared to the
last
release, 1.2.1.7:

  • upgraded LuaRestyMySQLLibrary to 0.10.

    • bugfix: the MySQL “bigint” fields might overflow when
      converting to lua numbers. now we no longer convert such
      fields into Lua numbers and instead, just treat them as Lua
      strings. thanks Lance Li for reporting this issue.
  • upgraded LuaNginxModule to 0.5.11.

    • feature: added new Lua API ngx.req.init_body,
      ngx.req.append_body, and ngx.req.finish_body. These new
      functions can be used with the existing “downstream cosocket
      API” (provided by ngx.req.socket) to implement efficient
      Nginx “input filters” in pure Lua. thanks Matthieu T.
      for the patches.

    • feature: added new Lua API ngx.get_phase for retrieving the
      current running phase of the Lua code being executed. thanks
      James Hurst for the patch.

    • feature: added the first dtrace static probe:
      “nginx_lua:::http-lua-register-preload-package” and
      “nginx_lua:::http-lua-req-socket-consume-preread”.

    • bugfix: the ngx.req.socket() object could not handle
      pipelined requests correctly and resulted in the “400 Bad
      Request” error page in some special cases. thanks Matthieu
      Tourne for helping catching this bug.

    • bugfix: “buffer error” would happen when the “args” option
      table to ngx.location.capture (and ngx.encode_args)
      contained a multi-value argument whose key also required URI
      escaping. thanks Matthieu T. for reporting this.

    • bugfix: ngx.re.gmatch() might result in segmentation faults
      during nginx request cleanups if the iterator returned by
      ngx.re.gmatch() was collected (by Lua GC) before request
      cleanups. this bug had appeared in LuaNginxModule 0.5.0rc30
      (and OpenResty 1.0.15.9). thanks Wayne for reporting this
      issue.

    • bugfix: 3rd-party nginx C modules that use the public C API
      function, “ngx_http_lua_add_package_preload”, could result
      in segmentation faults at nginx server startup due to
      uninitialized Lua VM pointer. thanks Ray Bejjani for
      reporting this.

    • bugfix: proper error messages were not always thrown when
      the iterator returned by ngx.re.gmatch was (incorrectly)
      used in the context of another nginx request.

    • bugfix: fixed several Clang compilation warnings.

  • feature: applied the dtrace patch to the nginx core that adds
    dtrace static probing support for both the Nginx core and
    3rd-party modules to the Nginx build system. this support can be
    enabled by “./configure --with-dtrace-probes”.

  • feature: added new dtrace static probes to the Nginx core

    • added 8 kinds of static probes to the subrequest mechanism:
      “nginx:::http-subrequest-cycle”,
      “nginx:::http-subrequest-start”,
      “nginx:::http-subrequest-finalize-writing”,
      “nginx:::http-subrequest-finalize-nonactive”,
      “nginx:::http-subrequest-wake-parent”,
      “nginx:::http-subrequest-done”,
      “nginx:::http-subrequest-post-start”, and
      “nginx:::http-subrequest-post-done”.

    • added 2 kinds of static probes to the standard request body
      reader: “nginx:::http-read-body-abort” and
      “nginx:::http-read-body-done”.

    • added 2 kinds of static probes to the standard main request
      header reader: “nginx:::http-read-req-line-done” and
      “nginx:::http-read-req-header-done”.

    • added 1 kind of static probes to the configuration loader:
      “nginx:::http-module-post-config”.

    • added the “nginx.stp” stapset script for systemtap:
      https://github.com/agentzh/nginx-dtrace/blob/master/src/dtra
      ce/nginx.stp

    • added the stap-nginx wrapper sh script for systemtap’s
      “stap” command for nginx. this script will be installed to
      “$PREFIX/sbin/” when the “./configure” option
      “–with-dtrace-probes” is specified.

  • bugfix: fixed an issue regarding subrequests in
    allow_request_body_updating.patch.

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

http://openresty.org/#ChangeLog1002001

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

OpenResty (aka. ngx_openresty) is a full-fledged web application server
by
bundling the standard Nginx core, lots of 3rd-party Nginx modules, as
well
as most of their external dependencies. See OpenResty’s homepage for
details:

http://openresty.org/

Have fun!
-agentzh