I’m happy to announce the v0.37 release of the ngx_echo module, which
includes lots of bugfixes in the last 6 months.
You can get the release tarball from the download page below
Here’s the complete change log for this release (compared to the last
bugfix: data truncation might occur with echo_after_body in
not-so-good networks (we should be prepared for NGX_AGAIN returned by
downstream output filters). thanks Kindy Lin for reporting it.
bugfix: we no longer check sync buffers for subrequests because it
bugfix: fixed a bug when sending out response headers: we did not
take into account the NGX_ERROR error code returned by
bugfix: we did not work with HEAD http requests before.
bugfix: now we carefully eliminate empty flush buffers in
echo_after_body to work around a long-standing bug in the standard
bugfix: we might send empty chain link in echo_after_body because it
may trigger the infamous “the http output chain is empty” alert in
error.log when the standard HttpSsiModule is disabled. thanks Sparsh
bugfix: we did not set subrequest’s Content-Length request headers
which could cause problems in the backends.
bugfix: echo_exec + named locations might cause weird issues and now
we explicitly clear all the modules’ contexts before calling
bugfix: echo_exec might hang when running after echo_sleep (or other
I/O interruption calls): we should have called
ngx_http_finalize_request on NGX_DONE to decrement r->main->count
bugfix: there was a memory issue in both echo_sleep and
echo_blocking_sleep: we should not pass ngx_str_t strings to atof()
which expects C strings.
bugfix: some users report that this module cannot be compiled with
Nginx 1.0.x on their systems due to ngx_time_update (as in github
issue #7). this is a blind attemp to fix it because we could not
reproduce it on our side.
bugfix: fixed places in the source code that we did not check null
pointers returned by the memory allocator.
You can also view the HTML-version of the change log here (which may
The ngx_echo module wraps lots of Nginx internal APIs for streaming
input and output, parallel/sequential subrequests, timers and
sleeping, as well as various meta data accessing. You can read the
full documentation on the following wiki page:
and you can always get the latest source code from GitHub:
The ngx_echo module is included and enabled by default in our