From: Alex Rousskov Date: Sun, 8 Nov 2020 17:50:03 +0000 (+0000) Subject: Squid-to-client write_timeout triggers client_lifetime timeout (#747) X-Git-Tag: SQUID_4_15~14 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=9db2c4b1c2e607abd8bf504c8bc7cea55f2acb4c;p=thirdparty%2Fsquid.git Squid-to-client write_timeout triggers client_lifetime timeout (#747) Since commit 5ef5e5c, a socket write timeout triggers two things: * reporting of a write error to the socket writer (as designed/expected) * reporting of a socket read timeout to the socket reader (unexpected). The exact outcome probably depends on the transaction state, but one known manifestation of this bug is the following level-1 message in cache.log, combined with an access.log record showing a much-shorter-than-client_lifetime transaction response time. WARNING: Closing client connection due to lifetime timeout --- diff --git a/src/comm.cc b/src/comm.cc index 733a18c512..0d5f34d8de 100644 --- a/src/comm.cc +++ b/src/comm.cc @@ -1585,6 +1585,7 @@ checkTimeouts(void) debugs(5, 5, "checkTimeouts: FD " << fd << " auto write timeout"); Comm::SetSelect(fd, COMM_SELECT_WRITE, NULL, NULL, 0); COMMIO_FD_WRITECB(fd)->finish(Comm::COMM_ERROR, ETIMEDOUT); + continue; } else if (AlreadyTimedOut(F)) continue;