BUG: http: do not abort keep-alive connections on server timeout

When a server timeout is detected on the second or nth request of a keep-alive
connection, HAProxy closes the connection without writing a response.
Some clients would fail with a remote disconnected exception and some
others would retry potentially unsafe requests.

This patch removes the special case and makes sure a 504 timeout is
written back whenever a server timeout is handled.

Signed-off-by: lsenta <laurent.senta@gmail.com>
This commit is contained in:
lsenta 2015-11-13 10:44:22 +01:00 committed by Willy Tarreau
parent 7385f65283
commit 1e1f41d0f3

View File

@ -6125,8 +6125,6 @@ int http_wait_for_response(struct stream *s, struct channel *rep, int an_bit)
else if (rep->flags & CF_READ_TIMEOUT) { else if (rep->flags & CF_READ_TIMEOUT) {
if (msg->err_pos >= 0) if (msg->err_pos >= 0)
http_capture_bad_message(&s->be->invalid_rep, s, msg, msg->msg_state, sess->fe); http_capture_bad_message(&s->be->invalid_rep, s, msg, msg->msg_state, sess->fe);
else if (txn->flags & TX_NOT_FIRST)
goto abort_keep_alive;
s->be->be_counters.failed_resp++; s->be->be_counters.failed_resp++;
if (objt_server(s->target)) { if (objt_server(s->target)) {