mirror of
https://github.com/nginx/nginx.git
synced 2024-12-19 05:33:52 -06:00
Upstream keepalive: clean read delayed flag in stored connections.
If a connection with the read delayed flag set was stored in the keepalive cache, and after picking it from the cache a read timer was set on that connection, this timer was considered a delay timer rather than a socket read event timer as expected. The latter timeout is usually much longer than the former, which caused a significant delay in request processing. The issue manifested itself with proxy_limit_rate and upstream keepalive enabled and exists since 973ee2276300 (1.7.7) when proxy_limit_rate was introduced.
This commit is contained in:
parent
53e5a746bf
commit
e13268714f
@ -340,6 +340,7 @@ ngx_http_upstream_free_keepalive_peer(ngx_peer_connection_t *pc, void *data,
|
||||
pc->connection = NULL;
|
||||
|
||||
if (c->read->timer_set) {
|
||||
c->read->delayed = 0;
|
||||
ngx_del_timer(c->read);
|
||||
}
|
||||
if (c->write->timer_set) {
|
||||
|
Loading…
Reference in New Issue
Block a user