MINOR: http-ana: Use -1 status for client aborts during queuing and connect
When a client aborts while the session is in the queue or during the connect stage, instead of reporting a 503-Service-Unavailable error in logs, -1 status is used. It means -1 status is now reported with 'CC' and 'CQ' termination state. Indeed, when a client aborts before the server connection is established, there is no reason to report a 503 because nothing is sent to the server. And in this case, because it is a client abort, it is useless to send any response to the client. Thus -1 status is approriate. This status is used in log messages when the connection is closed and no response is sent. This patch should fix the issue #1266.
This commit is contained in:
parent
f22b032956
commit
5e702fcadc
|
@ -4799,33 +4799,42 @@ void http_return_srv_error(struct stream *s, struct stream_interface *si)
|
|||
int err_type = si->err_type;
|
||||
|
||||
/* set s->txn->status for http_error_message(s) */
|
||||
s->txn->status = 503;
|
||||
|
||||
if (err_type & SI_ET_QUEUE_ABRT)
|
||||
http_server_error(s, si, SF_ERR_CLICL, SF_FINST_Q,
|
||||
http_error_message(s));
|
||||
else if (err_type & SI_ET_CONN_ABRT)
|
||||
http_server_error(s, si, SF_ERR_CLICL, SF_FINST_C,
|
||||
(s->txn->flags & TX_NOT_FIRST) ? NULL :
|
||||
http_error_message(s));
|
||||
else if (err_type & SI_ET_QUEUE_TO)
|
||||
if (err_type & SI_ET_QUEUE_ABRT) {
|
||||
s->txn->status = -1;
|
||||
http_server_error(s, si, SF_ERR_CLICL, SF_FINST_Q, NULL);
|
||||
}
|
||||
else if (err_type & SI_ET_CONN_ABRT) {
|
||||
s->txn->status = -1;
|
||||
http_server_error(s, si, SF_ERR_CLICL, SF_FINST_C, NULL);
|
||||
}
|
||||
else if (err_type & SI_ET_QUEUE_TO) {
|
||||
s->txn->status = 503;
|
||||
http_server_error(s, si, SF_ERR_SRVTO, SF_FINST_Q,
|
||||
http_error_message(s));
|
||||
else if (err_type & SI_ET_QUEUE_ERR)
|
||||
}
|
||||
else if (err_type & SI_ET_QUEUE_ERR) {
|
||||
s->txn->status = 503;
|
||||
http_server_error(s, si, SF_ERR_SRVCL, SF_FINST_Q,
|
||||
http_error_message(s));
|
||||
else if (err_type & SI_ET_CONN_TO)
|
||||
}
|
||||
else if (err_type & SI_ET_CONN_TO) {
|
||||
s->txn->status = 503;
|
||||
http_server_error(s, si, SF_ERR_SRVTO, SF_FINST_C,
|
||||
(s->txn->flags & TX_NOT_FIRST) ? NULL :
|
||||
http_error_message(s));
|
||||
else if (err_type & SI_ET_CONN_ERR)
|
||||
}
|
||||
else if (err_type & SI_ET_CONN_ERR) {
|
||||
s->txn->status = 503;
|
||||
http_server_error(s, si, SF_ERR_SRVCL, SF_FINST_C,
|
||||
(s->flags & SF_SRV_REUSED) ? NULL :
|
||||
http_error_message(s));
|
||||
else if (err_type & SI_ET_CONN_RES)
|
||||
}
|
||||
else if (err_type & SI_ET_CONN_RES) {
|
||||
s->txn->status = 503;
|
||||
http_server_error(s, si, SF_ERR_RESOURCE, SF_FINST_C,
|
||||
(s->txn->flags & TX_NOT_FIRST) ? NULL :
|
||||
http_error_message(s));
|
||||
}
|
||||
else { /* SI_ET_CONN_OTHER and others */
|
||||
s->txn->status = 500;
|
||||
http_server_error(s, si, SF_ERR_INTERNAL, SF_FINST_C,
|
||||
|
|
Loading…
Reference in New Issue