diff --git a/src/proto_http.c b/src/proto_http.c index f717bdf32..10420818c 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -3848,9 +3848,18 @@ int produce_content_stats_proxy(struct session *s, struct proxy *px) case DATA_ST_PX_BE: /* print the backend */ if (px->cap & PR_CAP_BE) { + int gcd = 1; + if (px->map_state & PR_MAP_RECALC) recalc_server_map(px); + /* The GCD which was computed causes the total effective + * weight to appear lower than all weights. Let's + * recompute it. + */ + if (px->srv && px->srv->eweight) + gcd = px->srv->uweight / px->srv->eweight; + chunk_printf(&msg, sizeof(trash), /* name */ "