[PATCH] ngx_gzip might hang the request for slow downstreams
Maxim Dounin
mdounin at mdounin.ru
Thu Oct 31 00:06:07 UTC 2013
Hello!
On Mon, Oct 28, 2013 at 03:37:44PM -0700, Yichun Zhang (agentzh) wrote:
> Hello!
>
> On Mon, Oct 28, 2013 at 2:02 PM, Maxim Dounin wrote:
> >>
> >> - if (ctx->nomem) {
> >> + if (ctx->nomem || in == NULL) {
> >>
> >> /* flush busy buffers */
> >
> > Is the same problem exists in the gunzip filter, which has very
> > similar code?
>
> Yes. I've reproduced the request hang in the gunzip filter module as
> well, with the following minimal test case:
>
> https://github.com/chaoslawful/lua-nginx-module/commit/594f55b
>
> > Is a similar patch needed there?
> >
>
> Yes. I can confirm that a similar patch fixes the hang on my side.
>
> > And, BTW, do you care to provide a Mercurial changeset, as
> > suggested by nginx.org/en/docs/contributing_changes.html? It's
> > not something required, but will make sure your name will be kept
> > in history as a proper person to blame. :)
> >
>
> Here we go:
>
> # HG changeset patch
> # User Yichun Zhang <agentzh at gmail.com>
> # Date 1382997696 25200
> # Branch gzip-flush
> # Node ID 8985d6cc9a4334e954909c130e6204c6fc673d7e
> # Parent e6a1623f87bc96d5ec62b6d77356aa47dbc60756
> Flush pending data when incoming chain is NULL in gzip and gunzip modules
Committed with minor commit log changes, thanks.
--
Maxim Dounin
http://nginx.org/en/donation.html
More information about the nginx-devel
mailing list