Issue in Lua-nginx-module when use both ngx.location.capture and ngx.exec

agentzh agentzh at gmail.com
Thu Apr 7 07:14:21 MSD 2011


2011/3/17 agentzh <agentzh at gmail.com>:
>
> I've reproduced it on my side. This is indeed a bug. When ngx.exec()
> is used after ngx.location.capture() or ngx.location.capture_multi(),
> nginx 0.8.11+ will not close the client connection due to leaked
> request reference counter (r->main->count). A hacky work-around is to
> disable nginx http keepalive and rely on the browser (and other http
> clients) to actively close the connection. And that's why wget, curl,
> firefox, and other well-written http clients worked for you.
>
> Nginx 0.7.68 (and older) is confirmed to work in this context just
> because older nginx does not use reference counting.
>
> I'll attempt fix in the next few days. Thank you for reporting this
> and sorry about this issue :)
>

Sorry for the delay. I've caught a really bad cold recently :(

The good news is that I've just fixed this issue in ngx_lua's git HEAD:

    https://github.com/chaoslawful/lua-nginx-module

Alternatively, you can try out the new release candidate tarball,
which also includes this fix:

    https://github.com/chaoslawful/lua-nginx-module/tarball/v0.1.6rc4

Please let me know if it works for you :)

Have fun!
-agentzh



More information about the nginx mailing list