mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-01 22:48:25 +00:00
BUG/MINOR: stream-int: Don't trigger L7 retry if max retries is already reached
When an HTTP response is received, at the stream-interface level, if a L7 retry must be triggered because of the status code, the response is trashed and a read error is reported on the response channel. Then the stream handles this error and perform the retry. Except if the maximum connection retries is reached. In this case, an error is reported. Because the server response was already trashed by the stream-interface, a generic 502 error is returned to the client instead of the server's one. Now, the stream-interface triggers a L7 retry only if the maximum connection retries is not already reached. Thus, at the end, the last server's response is returned. This patch must be backported to 2.1 and 2.0. It should fix the issue #439.
This commit is contained in:
parent
3e34ac7d09
commit
48726b78e5
@ -1372,7 +1372,8 @@ int si_cs_recv(struct conn_stream *cs)
|
||||
break;
|
||||
}
|
||||
|
||||
if (si->flags & SI_FL_L7_RETRY) {
|
||||
/* L7 retries enabled and maximum connection retries not reached */
|
||||
if ((si->flags & SI_FL_L7_RETRY) && si->conn_retries) {
|
||||
struct htx *htx;
|
||||
struct htx_sl *sl;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user