mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-15 21:59:41 -04:00
BUG/MEDIUM: streams: Make sur SI_FL_L7_RETRY is set before attempting a retry.
In a few cases, we'd just check if the backend is configured to do retries, and not if it's still allowed on the stream_interface. The SI_FL_L7_RETRY flag could have been removed because we failed to allocate a buffer, or because the request was too big to fit in a single buffer, so make sure it's there before attempting a retry.
This commit is contained in:
parent
bfe2a83c24
commit
ad26d8d820
1 changed files with 2 additions and 0 deletions
|
|
@ -1528,6 +1528,7 @@ int htx_wait_for_response(struct stream *s, struct channel *rep, int an_bit)
|
|||
*/
|
||||
if (conn->err_code == CO_ER_SSL_EARLY_FAILED) {
|
||||
if ((s->be->retry_type & PR_RE_EARLY_ERROR) &&
|
||||
(si_b->flags & SI_FL_L7_RETRY) &&
|
||||
do_l7_retry(s, si_b) == 0)
|
||||
return 0;
|
||||
txn->status = 425;
|
||||
|
|
@ -1817,6 +1818,7 @@ int htx_wait_for_response(struct stream *s, struct channel *rep, int an_bit)
|
|||
health_adjust(__objt_server(s->target), HANA_STATUS_HTTP_HDRRSP);
|
||||
}
|
||||
if ((s->be->retry_type & PR_RE_JUNK_REQUEST) &&
|
||||
(si_b->flags & SI_FL_L7_RETRY) &&
|
||||
do_l7_retry(s, si_b) == 0)
|
||||
return 0;
|
||||
txn->status = 502;
|
||||
|
|
|
|||
Loading…
Reference in a new issue