nginx/src
Maxim Dounin 2485681308 Lingering close for connections with pipelined requests.
This is expected to help with clients using pipelining with some constant
depth, such as apt[1][2].

When downloading many resources, apt uses pipelining with some constant
depth, a number of requests in flight.  This essentially means that after
receiving a response it sends an additional request to the server, and
this can result in requests arriving to the server at any time.  Further,
additional requests are sent one-by-one, and can be easily seen as such
(neither as pipelined, nor followed by pipelined requests).

The only safe approach to close such connections (for example, when
keepalive_requests is reached) is with lingering.  To do so, now nginx
monitors if pipelining was used on the connection, and if it was, closes
the connection with lingering.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=973861#10
[2] https://mailman.nginx.org/pipermail/nginx-devel/2023-January/ZA2SP5SJU55LHEBCJMFDB2AZVELRLTHI.html
2023-02-02 23:38:48 +03:00
..
core Lingering close for connections with pipelined requests. 2023-02-02 23:38:48 +03:00
event Style. 2023-01-28 05:20:23 +03:00
http Lingering close for connections with pipelined requests. 2023-02-02 23:38:48 +03:00
mail Fixed port ranges support in the listen directive. 2022-12-18 21:29:02 +03:00
misc Cpp test: added stream. 2020-10-13 07:44:09 +03:00
os Style. 2022-12-16 01:15:15 +04:00
stream Fixed port ranges support in the listen directive. 2022-12-18 21:29:02 +03:00