On Thu, Mar 17, 2011 at 12:09:53AM +0100, Gerhard Heift wrote:
> I found a bug in the request finalization on linux:
> If the server has a keep-alive set to 0 and the client sends pipelined
> requests which exeeds client_header_buffer_size, nginx closes the
> connection and linux sends a TCP RST since there is still data in
> the TCP buffer of the kernel. This results in an incomplete transfer on
> the client site.
> One possible solution would be to allow pipelined request even if
> keep-alive is set to zero. Another one would be to wait until the kernel
> receives the ACK for all pending data in the send buffer.
Yes, thank you for report. Pipilining in nginx currently have
some rough edges and need for lingering close is one of them.