[PATCH]Upstream: fix possible request hang when "proxy_buffering" is off.

flygoast flygoast at 126.com
Thu Jun 26 03:10:53 UTC 2014


You're right. It still can hang. I have another question:


What's the meaning for "c->sent - sent >= limit - (off_t) (2 * ngx_pagesize))"?


I don't understand it. Why "2 * ngx_pagesize"? Can you help to explain the logic?


Thanks.







At 2014-06-26 02:12:33,"Maxim Dounin" <mdounin at mdounin.ru> wrote:
>Hello!
>
>On Wed, Jun 25, 2014 at 10:00:35PM +0800, flygoast wrote:
>
>> At here:
>> in ngx_http_write_filter():
>> 
>> 
>>     if (limit
>>         && c->write->ready
>>         && c->sent - sent >= limit - (off_t) (2 * ngx_pagesize))
>>     {
>>         c->write->delayed = 1;
>>         ngx_add_timer(c->write, 1);
>>     }
>> 
>> 
>> limit's value from clcf->sendfile_max_chunk. In my nginx.conf, I set "sendfile_max_chunk 8k;". I attached a debug log for this situation in last mail.
>
>Well, so the problem happens with sendfile_max_chunk set lower 
>than proxy_buffer_size.  While I don't think that 
>sendfile_max_chunk 8k is practical, it probably worth fixing.
>
>I don't think that suggested patch is right
>though - it will not prevent infinite stall of transfering a big 
>enough data chunk, as timer set by write filter will be removed.
>
>-- 
>Maxim Dounin
>http://nginx.org/
>
>_______________________________________________
>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/20140626/af2b654f/attachment.html>


More information about the nginx-devel mailing list