Ngx_echo module v0.37 released!

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

Tags · openresty/echo-nginx-module · GitHub

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
    ngx_http_send_header.

  • 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
    HttpGzipModule.

  • 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
    Gupta.

  • 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
    ngx_http_named_location.

  • 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
    anyway.

  • 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):

HTTP Echo Module | NGINX

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:

HTTP Echo Module | NGINX

and you can always get the latest source code from GitHub:

GitHub - openresty/echo-nginx-module: An Nginx module for bringing the power of "echo", "sleep", "time" and more to Nginx's config file

The ngx_echo module is included and enabled by default in our
ngx_openresty bundle:

http://openresty.org

Happy echoing!
-agentzh