From: Olivier Houchard Date: Wed, 13 May 2020 17:07:20 +0000 (+0200) Subject: BUG/MEDIUM: stream: Only allow L7 retries when using HTTP. X-Git-Tag: v2.2-dev8~75 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7dd7b908db1cb804ffe30ef208f7eac1824c1889;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: stream: Only allow L7 retries when using HTTP. Only allow L7 retries when using HTTP, it only really makes sense for HTTP, anyway, and as the L7 retries code assume the message will be HTX, it will crash when used with mode TCP. This should fix github issue #627. This should be backported to 2.1 and 2.0. --- diff --git a/src/stream.c b/src/stream.c index f7ed26f30c..4fa41a71d9 100644 --- a/src/stream.c +++ b/src/stream.c @@ -2068,6 +2068,7 @@ struct task *process_stream(struct task *t, void *context, unsigned short state) si_b->state = SI_ST_REQ; /* new connection requested */ si_b->conn_retries = s->be->conn_retries; if ((s->be->retry_type &~ PR_RE_CONN_FAILED) && + (s->be->mode == PR_MODE_HTTP) && !(si_b->flags & SI_FL_D_L7_RETRY)) si_b->flags |= SI_FL_L7_RETRY; }