MINOR: server: make srv_shutdown_sessions() call pendconn_redistribute()
When shutting down server sessions, the queue was not considered, which is a problem if some element reached the queue at the moment the server was going down, because there will be no more requests to kick them out of it. Let's always make sure we scan the queue to kick these streams out of it and that they can possibly find a more suitable server. This may make a difference in the time it takes to shut down a server on the CLI when lots of servers are in the queue. It might be interesting to backport this to 3.0 but probably not much further. (cherry picked from commit 1d403caf8aa59c9070f30ea16017261cab679fe2) Signed-off-by: Willy Tarreau <w@1wt.eu>
This commit is contained in:
parent
9417cf320f
commit
16cfaec89b
@ -2003,6 +2003,9 @@ void srv_shutdown_streams(struct server *srv, int why)
|
|||||||
mt_list_for_each_entry_safe(stream, &srv->per_thr[thr].streams, by_srv, elt1, elt2)
|
mt_list_for_each_entry_safe(stream, &srv->per_thr[thr].streams, by_srv, elt1, elt2)
|
||||||
if (stream->srv_conn == srv)
|
if (stream->srv_conn == srv)
|
||||||
stream_shutdown(stream, why);
|
stream_shutdown(stream, why);
|
||||||
|
|
||||||
|
/* also kill the possibly pending streams in the queue */
|
||||||
|
pendconn_redistribute(srv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Shutdown all connections of all backup servers of a proxy. The caller must
|
/* Shutdown all connections of all backup servers of a proxy. The caller must
|
||||||
|
Loading…
x
Reference in New Issue
Block a user