Skip to content

Commit

Permalink
MINOR: server: make srv_shutdown_sessions() call pendconn_redistribute()
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
wtarreau committed Sep 27, 2024
1 parent 1385e33 commit 1d403ca
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/server.c
Original file line number Diff line number Diff line change
Expand Up @@ -2027,6 +2027,9 @@ void srv_shutdown_streams(struct server *srv, int why)
MT_LIST_FOR_EACH_ENTRY_LOCKED(stream, &srv->per_thr[thr].streams, by_srv, back)
if (stream->srv_conn == srv)
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
Expand Down

0 comments on commit 1d403ca

Please sign in to comment.