diff --git a/src/checks.c b/src/checks.c index 76bd8e3df..aeb3b79b6 100644 --- a/src/checks.c +++ b/src/checks.c @@ -1488,12 +1488,16 @@ static struct task *server_warmup(struct task *t, void *context, unsigned short (s->next_state != SRV_ST_STARTING)) return t; + HA_SPIN_LOCK(SERVER_LOCK, &s->lock); + /* recalculate the weights and update the state */ server_recalc_eweight(s, 1); /* probably that we can refill this server with a bit more connections */ pendconn_grab_from_px(s); + HA_SPIN_UNLOCK(SERVER_LOCK, &s->lock); + /* get back there in 1 second or 1/20th of the slowstart interval, * whichever is greater, resulting in small 5% steps. */