Find Blocking Go Code Paths Holding back CPU Usage (Using OpenResty XRay)
We have just kicked out a new release candidate, OpenResty 18.104.22.168 RC2, for the community to test out.
PGP for this source tar ball:
PGP for the Win64 zip file:
PGP for the Win32 zip file:
Special thanks go to all our developers and contributors! Also thanks Junlong Li, and Jiahao Wang for their help in preparing this release.
The highlights of this release candidate are:
- Fixed the bug that posted event handler is called after the event is freed.
- Fixed pending ngx.pipe until timeout caused by pipe that forgot to close in child process.
- Many fixes imported from Mike Pall's upstream https://github.com/luajit/luajit repository.
Complete change logs since the last release candidate, 22.214.171.124 RC1:
- upgraded lua-nginx-module to 0.10.21rc2
- bugfix: ngx.pipe waits until timeout because child process forgot to close pipe after dup2. Thanks Junlong Li for the patch.
- bugfix: posted event handler was called after event memory was freed. Thanks Junlong Li for the patch.
- upgraded luajit2 to 2.1-20220310
- Fix string buffer COW handling.
- Fix command-line argv handling.
- Always exit after machine code page protection change fails.
- Fix FOLD rule for BUFHDR append with intervening buffer use.
- Fix compiled error handling for buffer methods.
- FFI: Ensure library is loaded before de-serializing FFI types.
- Fix HREFK forwarding vs. table.clear().
- Fix FOLD rule for BUFHDR append.
- Fix tonumber("-0") in dual-number mode.
- Limit work done in SINK pass.
- Fix ABC FOLD rule with constants.
- Windows: Fix binary output of jit.bcsave to stdout.
- Fix FOLD rule for x-0.
More Interesting Topics
How we solved a CPU bottleneck caused by Lua exceptions in a custom Kong plugin (using OpenResty XRay)