[BUG] do not re-arm read timeout in SHUTR state !

There is a long-time bug causing busy loops when either client-side
or server-side enters a SHUTR state. When writing data to the FD,
it was possible to re-arm the read side if the write had been paused.
This commit is contained in:
Willy Tarreau 2007-06-03 15:25:37 +02:00
parent 3c6fc07e18
commit 33014d0d8d

View File

@ -2147,12 +2147,7 @@ int process_cli(struct session *t)
/* buffer not empty */
if (EV_FD_COND_S(t->cli_fd, DIR_WR)) {
/* restart writing */
if (tv_add_ifset(&rep->wex, &now, &t->fe->clitimeout)) {
/* FIXME: to prevent the client from expiring read timeouts during writes,
* we refresh it. */
req->rex = rep->wex;
}
else
if (!tv_add_ifset(&rep->wex, &now, &t->fe->clitimeout))
tv_eternity(&rep->wex);
}
}
@ -3183,12 +3178,7 @@ int process_srv(struct session *t)
else { /* buffer not empty */
if (EV_FD_COND_S(t->srv_fd, DIR_WR)) {
/* restart writing */
if (tv_add_ifset(&req->wex, &now, &t->be->srvtimeout)) {
/* FIXME: to prevent the server from expiring read timeouts during writes,
* we refresh it. */
rep->rex = req->wex;
}
else
if (!tv_add_ifset(&req->wex, &now, &t->be->srvtimeout))
tv_eternity(&req->wex);
}
}