mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
BUG/MEDIUM: http-ana: Don't close request side when waiting for response
A recent fix (af124360e "BUG/MEDIUM: http-ana: Detect closed SC on opposite side during body forwarding") was pushed to handle to sync a side when the opposite one is in closing state. However, sometimes, the synchro is performed too early, preventing a L7 retry to be performed. Indeed, while the above fix is valid on the reponse side. On the request side, if the response was not yet received, we must wait before closing. So, to fix the fix, on the request side, we at least wait the response was received before finishing the request analysis. Of course, if there is an error, an abort or anything wrong on the server side, the response analyser should handle it. This patch is related to #2061. No backport needed.
This commit is contained in:
parent
6f78ac5605
commit
c2fba3f77f
@ -4235,7 +4235,8 @@ static void http_end_request(struct stream *s)
|
||||
*/
|
||||
chn->flags |= CF_NEVER_WAIT;
|
||||
|
||||
if (txn->rsp.msg_state < HTTP_MSG_DONE && s->scb->state != SC_ST_CLO) {
|
||||
if (txn->rsp.msg_state < HTTP_MSG_BODY ||
|
||||
(txn->rsp.msg_state < HTTP_MSG_DONE && s->scb->state != SC_ST_CLO)) {
|
||||
/* The server has not finished to respond and the
|
||||
* backend SC is not closed, so we don't want to move in
|
||||
* order not to upset it.
|
||||
|
Loading…
x
Reference in New Issue
Block a user