In memory subrequest hang if backend return 500

최영석 zealot33 at gmail.com
Wed Mar 21 09:13:37 UTC 2012


Hi, Maxim.

Can you please explain how this part could make problems for keepalive
connections of backends?

Thank you!

2012/3/21 Maxim Dounin <mdounin at mdounin.ru>

> Hello!
>
> On Wed, Mar 21, 2012 at 10:53:45AM +0800, Abioy Sun wrote:
>
> > Hi All,
> >
> > In the file ngx_http_upstream.c I found some code like this:
> >
> > 1618     if (u->headers_in.status_n > NGX_HTTP_SPECIAL_RESPONSE) {
> > 1619
> > 1620         if (r->subrequest_in_memory) {
> > 1621             u->buffer.last = u->buffer.pos;
> > 1622         }
> >
> > that means, if the status backend return if greater than 300, the first
> > part of the body would be abandoned.  Will this cause the issue that the
> > main request won't be woken again and keep sleeping until timeout? Or
> did I
> > misunderstand anything?
>
> Do you use keepalive connections to backends?
>
> As far as I see, this may indeed cause problems with keepalive
> connections, though should be ok in non-keepalive case.
>
> Maxim Dounin
>
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20120321/f4dff23e/attachment-0001.html>


More information about the nginx-devel mailing list