Pinpointing the Python Code Paths with High Disk I/O (using OpenResty XRay)
OpenResty 1.17.8.1 Released
Yichun Zhang (agentzh) , 13 Jul 2020 (created 01 Jul 2020)We are happy to announce the new formal release, 1.17.8.1, of the OpenResty web platform based on NGINX and LuaJIT.
The (portable) source code distribution, the Win32/Win64 binary distributions, and the pre-built binary Linux packages for Ubuntu, Debian, Fedora, CentOS, RHEL, Alpine, Amazon Linux are provided on this Download page.
We added new binary package repositories for Ubuntu 14.04, Alpine 3.12, OpenSUSE 15.2, and Fedora 28.
This is the first OpenResty release based on the nginx 1.17.8 core.
Acknowledgments
Special thanks go to all our developers, sponsors, and contributors! Also thanks Thibault Charbonnier, Junlong Li, and Lujia Zhai for their help in preparing this release.
Version highlights
The highlights of this release candidate are:
- Based on the very recent mainline NGINX core 1.17.8.
- Support for OpenSSL 1.1.1 by upgrading the OpenSSL patches.
- Dropped support for PUC-Rio Lua; from now on, only LuaJIT 2.x is supported.
- Dropped the
dtrace
andgcc-maybe-uninitialized-warning
NGINX core patches, and applied the newinit_cycle_pool_release
patch. Additionally, all versions of the OpenSSL patches are now bundled in the final release tarball. - Reduced the final release tarball size from 4.7MB down to 3.5MB.
- ngx_lua
- Mandatorily load lua-resty-core and switched to the FFI-based API when available. Many old CFunction implementations have been removed, and lua_load_resty_core has been deprecated.
- Made the
coroutine.wrap()
API propagate errors to its parent coroutine, aligning with standard Lua behavior. This change may be breaking for some applications relying on the previous - but invalid - behavior of ngx_lua. - Fixed several compilation errors for static PCRE builds and LuaJIT FFI checks.
- ngx_stream_lua
- Ported many features from the
ngx_lua module,
including:
- Mandatorily load lua-resty-core and switched to the FFI-based API when available. Many old CFunction implementations have been removed, and lua_load_resty_core has been deprecated.
- Made the
coroutine.wrap()
API propagate errors to its parent coroutine, aligning with standard Lua behavior. This change may be breaking for some applications relying on the - invalid - previous behavior of ngx_stream_lua. - Added the
pool_size
andbacklog
options to the tcpsock:connect() API. - Enabled many FFI-based APIs for the stream subsystem including
ngx.worker.*
,ngx.var
,ngx.ctx
, and many more... - Fixed several compilation errors for static PCRE builds and LuaJIT FFI checks.
- Ported more features and bugfixes from previous releases of the ngx_lua module...
- Ported many features from the
ngx_lua module,
including:
- lua-resty-core
- Implemented the new
ngx_req.add_header()
API, similar tongx_resp.add_header()
. - New features for the
ngx.pipe
API with support for environment variables, timeouts, and more. - Updated the
ngx_ssl.get_tls1_version_str()
API to recognize TLS 1.3 connection.
- Implemented the new
- LuaJIT
- Increased the maximum number of allowed upvalues from 60 to 120.
- Initial support for x390x architectures.
- Many fixes imported from Mike Pall's upstream LuaJIT repository.
Full Change logs
Complete change logs since the last (formal) release, 1.15.8.3, can be browsed in the page Change Log for 1.17.8.x.
Testing
We have run extensive testing on our Amazon EC2 test cluster and ensured that all the components (including the Nginx core) play well together. The latest test report can always be found here:
We also always run our OpenResty Edge commercial software based on the latest open source version of OpenResty in our own global CDN network (dubbed "mini CDN") powering our openresty.org and openresty.com websites. See https://openresty.com/ for more details.
Community Support
See the Community Page.
Commercial Support
Commercial technical support and real-time noninvasive online monitoring and profiling solution is provided through the official OpenResty XRay product.
Feedback
Feedback on this release is more than welcome. Feel free to create new GitHub issues or send emails to one of our mailing lists.