MINOR: streams: Introduce a new retry-on keyword, all-retryable-errors.

Add a new retry-on keyword, "all-retryable-errors", that activates retry
for all errors that are considered retryable.
This currently activates retry for "conn-failure", "empty-response",
"junk-respones", "response-timeout", "0rtt-rejected", "500", "502", "503" and
"504".
This commit is contained in:
Olivier Houchard 2019-05-10 18:05:40 +02:00 committed by Olivier Houchard
parent 602bf7d2ea
commit ddf0e03585
2 changed files with 11 additions and 0 deletions

View File

@ -8062,6 +8062,12 @@ retry-on [list of keywords]
Error), "501" (Not Implemented), "502" (Bad Gateway),
"503" (Service Unavailable), "504" (Gateway Timeout).
all-retryable-errors
retry request for any error that are considered
retryable. This currently activates "conn-failure",
"empty-response", "junk-response", "response-timeout",
"0rtt-rejected", "500", "502", "503", and "504".
Using this directive replaces any previous settings with the new ones; it is
not cumulative.

View File

@ -545,6 +545,11 @@ proxy_parse_retry_on(char **args, int section, struct proxy *curpx,
curpx->retry_type |= PR_RE_EARLY_ERROR;
else if (!strcmp(args[i], "junk-response"))
curpx->retry_type |= PR_RE_JUNK_REQUEST;
else if (!(strcmp(args[i], "all-retryable-errors")))
curpx->retry_type |= PR_RE_CONN_FAILED | PR_RE_DISCONNECTED |
PR_RE_TIMEOUT | PR_RE_500 | PR_RE_502 |
PR_RE_503 | PR_RE_504 | PR_RE_EARLY_ERROR |
PR_RE_JUNK_REQUEST;
else if (!strcmp(args[i], "none")) {
if (i != 1 || *args[i + 1]) {
memprintf(err, "'%s' 'none' keyworld only usable alone", args[0]);