线上快速定位硬盘 I/O 高的 Python 代码路径(使用 OpenResty XRay)
ChangeLog 1.7.0
Yichun Zhang , 07 Jun 2014 (created 07 Jun 2014)Version 1.7.0.1 - 7 June 2014
- upgraded the Nginx core to 1.7.0.
- see the changes here: http://nginx.org/en/CHANGES
- feature: bundled new Lua library, Lua Resty Lrucache Library, which is also enabled by default. see https://github.com/openresty/lua-resty-lrucache#readme for more details. thanks Shuxin Yang for the help.
- upgraded LuaJIT to v2.1-20140531: https://github.com/openresty/luajit2/tags
- imported Mike Pall's latest bug fixes and other changes:
- Fix frame traversal while searching for error function.
- Fix FOLD rule for STRREF of SNEW.
- FFI: Fix recording of indexing a struct pointer ctype object itself.
- FFI: Another fix for cdata equality comparisons.
- Fix FOLD rule for
string.sub(s, ...) == k
. - x86: Fix code generation for unused result of
math.random()
. - x64: Workaround for MSVC build issue.
- PPC: Fix red zone overflow in machine code generation.
- Fix compatibility issues with Illumos. Thanks to Theo Schlossnagle.
- Add PS Vita port. Thanks to Anton Stenmark.
- disabled trace stitching by default for now since it may trigger random lua stack corruptions when using with ngx_lua.
- feature: jit.dump: output Lua source location after every BC.
- feature: added internal memory-buffer-based trace entry/exit/start-recording event logging, mainly for debugging bugs in the JIT compiler. it requires
-DLUA_USE_TRACE_LOGS
when building. - feature: save
g->jit_base
tog->saved_jit_base
beforelj_err_throw
clearsg->jit_base
which makes it impossible to get Lua backtrace in such states.
- imported Mike Pall's latest bug fixes and other changes:
- upgraded Lua Resty Core Library to 0.0.7.
- feature: implemented ngx.req.set_header() (partial: table-typed values not yet supported) and ngx.req.clear_header() with FFI in the resty.core.request module.
- feature: implemented shdict:flush_all() with FFI in the resty.core.shdict.
- feature: implemented ngx.req.set_method() with FFI in resty.core.request.
- feature: implemented ngx.req.get_method() with FFI in resty.core.request.
- feature: implemented ngx.time() with FFI in resty.core.time.
- feature: implemented ngx.req.start_time with FFI in rest.core.request.
- feature: implemented ngx.now() with FFI in resty.core.time.
- upgraded Lua Nginx Module to 0.9.8.
- bugfix: the ngx.ctx table might be released prematurely when ngx.exit() was used to generate the response header. thanks Monkey Zhang for the report. now we always release ngx.ctx in our request pool cleanup handler.
- bugfix: we did not call our coroutine cleanup handlers right after our coroutine completes (either successfully or unsuccessfully) otherwise segmentation fault might happen when the Lua VM throws out unexpected exceptions like "attempt to yield across C-call boundary". thanks Lipin Dmitriy for the report.
- bugfix: nginx does not guarentee the parent pointer of the rbtree root is meaningful, which could lead to inifinite loops when Lua Nginx Module tried to abort pending timers prematurely (upon worker exit). thanks pengqi for the report.
- bugfix: ngx.req.set_method(): we incorrectly modified
r->method
when the method ID was wrong. - bugfix: rewrite_by_lua* and access_by_lua* will now terminate the current request if the response header has already been sent (via calls like ngx.say and ngx.send_headers) at that point. thanks yaronli and Sophos for the report.
- bugfix: issues in the error handling for pure C API functions for shared dict. thanks Xiaochen Wang.
- feature: now we save the original pattern string pointer value into our
ngx_http_lua_regex_t
C struct, to help runtime regex profiling and debugging. - feature: allow use of 3rd-party pcre bindings in init_by_lua*. thanks ikokostya for the feature request.
- feature: added pure C API functions to support the new FFI-based Lua API implemented in Lua Resty Core Library.
- feature: make use of the new shm API in nginx 1.5.13+ to suppress the "no memory" error logging when the shared dictionaries run out of memory.
- feature: added C macro
NGX_LUA_ABORT_AT_PANIC
to allow generating a core dump when the Lua VM panics.
- upgraded Srcache Nginx Module to 0.27.
- bugfix: we used to skip all the output header and body filters run before our filters (which unfortunately bypassed the standard ngx_http_not_modified_filter_module, for example). thanks Lloyd Zhou for the report.
- feature: added new config directive srcache_store_ranges for storing 206 Partial Content responses generated by the standard ngx_http_range_filter_module.
- bugfix: updated the dtrace patch because systemtap 2.5 no longer accepts the
-xnolib
option in its dtrace utility. - removed our bundled version of
ngx_http_auth_request_module
because recent versions of the nginx core already have it. thanks LazyZhu for the report. - bugfix: applied our patch for the nginx core to fix the long standing memory fragmentation issue for blocks larger than the page size in the nginx slab allocator: http://mailman.nginx.org/pipermail/nginx-devel/2014-May/005316.html thanks Shuxin Yang for the help. See ChangeLog 1.5.12 for change log for OpenResty 1.5.12.x.