diff --git a/include/haproxy/stream.h b/include/haproxy/stream.h index f72a923ce..06716aeeb 100644 --- a/include/haproxy/stream.h +++ b/include/haproxy/stream.h @@ -334,7 +334,7 @@ static inline void stream_choose_redispatch(struct stream *s) ((s->be->redispatch_after < 0) && (s->conn_retries % (s->be->conn_retries + 1 + s->be->redispatch_after) == 0))) || (!(s->flags & SF_DIRECT) && s->be->srv_act > 1 && - ((s->be->lbprm.algo & BE_LB_KIND) == BE_LB_KIND_RR)))) { + ((s->be->lbprm.algo & BE_LB_KIND) != BE_LB_KIND_HI)))) { sess_change_server(s, NULL); if (may_dequeue_tasks(objt_server(s->target), s->be)) process_srv_queue(objt_server(s->target)); diff --git a/src/backend.c b/src/backend.c index 45e9eab41..4b1ce5ce3 100644 --- a/src/backend.c +++ b/src/backend.c @@ -2412,7 +2412,6 @@ void back_handle_st_cer(struct stream *s) /* only wait when we're retrying on the same server */ if ((sc->state == SC_ST_ASS || - (s->be->lbprm.algo & BE_LB_KIND) != BE_LB_KIND_RR || (s->be->srv_act <= 1)) && !reused) { sc->state = SC_ST_TAR; s->conn_exp = tick_add(now_ms, MS_TO_TICKS(delay));