[ANN] ngx_echo module v0.37 released!

agentzh agentzh at gmail.com
Fri Jan 13 09:11:01 UTC 2012

Hi, folks!

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
release, v0.36):

* 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
is incorrect.

* 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
look better):


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
ngx_openresty bundle:


Happy echoing!

More information about the nginx mailing list