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:
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.
- bugfix: the MySQL “bigint” fields might overflow when
-
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
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