From: Aurelien DARRAGON Date: Mon, 28 Apr 2025 14:52:33 +0000 (+0200) Subject: CLEANUP: proxy: mention that px->conn_retries isn't relevant in some cases X-Git-Tag: v3.2-dev13~34 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=bd48e26a747016acfddce2929443f84fdb9e6997;p=thirdparty%2Fhaproxy.git CLEANUP: proxy: mention that px->conn_retries isn't relevant in some cases Since 91e785edc ("MINOR: stream: Rely on a per-stream max connection retries value"), px->conn_retries may be ignored in the following cases: * proxy not part of a list which gets properly post-init (ie: main proxy list, log-forward list, sink list) * proxy lacking the CAP_FE capability Documenting such cases where the px->conn_retries is set but effectively ignored, so that we either remove ignored statements or fix them in the future if they are really needed. In fact all cases affected here are automomous applets that already handle the retries themselves so the fact that 91e785edc made ->conn_retries ineffective should not be a big deal anyway. --- diff --git a/src/peers.c b/src/peers.c index f6d9ade2c..abc00026e 100644 --- a/src/peers.c +++ b/src/peers.c @@ -3237,7 +3237,12 @@ void peers_setup_frontend(struct proxy *fe) { fe->mode = PR_MODE_PEERS; fe->maxconn = 0; - fe->conn_retries = CONN_RETRIES; + fe->conn_retries = CONN_RETRIES; /* FIXME ignored since 91e785ed + * ("MINOR: stream: Rely on a per-stream max connection retries value") + * If this is really expected this should be set on the stream directly + * because the proxy is not part of the main proxy list and thus + * lacks the required post init for this setting to be considered + */ fe->timeout.connect = MS_TO_TICKS(1000); fe->timeout.client = MS_TO_TICKS(5000); fe->timeout.server = MS_TO_TICKS(5000); diff --git a/src/resolvers.c b/src/resolvers.c index 041e91864..f8378a18b 100644 --- a/src/resolvers.c +++ b/src/resolvers.c @@ -3357,6 +3357,12 @@ void resolvers_setup_proxy(struct proxy *px) { px->maxconn = 0; px->conn_retries = 1; + px->conn_retries = 1; /* FIXME ignored since 91e785ed + * ("MINOR: stream: Rely on a per-stream max connection retries value") + * If this is really expected this should be set on the stream directly + * because the proxy is not part of the main proxy list and thus + * lacks the required post init for this setting to be considered + */ px->timeout.server = TICK_ETERNITY; px->timeout.client = TICK_ETERNITY; px->timeout.connect = 1000; // by default same than timeout.resolve diff --git a/src/sink.c b/src/sink.c index ed7195981..f85f43e55 100644 --- a/src/sink.c +++ b/src/sink.c @@ -401,7 +401,11 @@ static int cli_parse_show_events(char **args, char *payload, struct appctx *appc void sink_setup_proxy(struct proxy *px) { px->maxconn = 0; - px->conn_retries = 1; + px->conn_retries = 1; /* FIXME ignored since 91e785ed + * ("MINOR: stream: Rely on a per-stream max connection retries value") + * If this is really expected this should be set on the stream directly + * because the proxy lacks the CAP_FE so this setting is not considered + */ px->timeout.server = TICK_ETERNITY; px->timeout.client = TICK_ETERNITY; px->timeout.connect = TICK_ETERNITY;