One of our customers is having trouble with their client-server system 
with a Squid proxy (ver 2.5 that comes with RHEL AS 3) sitting in the 
middle.

They have a Web server, a Squid proxy, and some clients.  This system 
works fine most of the times, but occasionally Squid returns clients an 
error 503 when a client sends a request to Squid at around the same time 
the Web server closes the connection due to HTTP 1.1 KeepAlive timeout.

Client  Squid           Server
   |              |                |
1  |---req--->|            X 
2  |              |<---close---|
3  |              |-req->X     |
4  |<---503---|            |
   |              |                |
   V
  time

1 Client sends a request to Squid. / Keepalive timeout occurs at Server.
2 Server initiates closure of the session (sends out FIN) before Squid 
gets to relay the request.
3 Squid cannot get any reply from Server since session is already closed.
4 Squid returns Client an HTTP error 503.

While I understand this kind of timing issue is almost impossible to 
avoid, it is still not desirable (visible to end-users).

Is there a way to have squid re-establish a new connection and resend the 
failed request in a condition like the one described above, or are we 
going to just have to move away from using persistent connection between 
Squid and Web server?

Regards,
Ken Sugawara <[EMAIL PROTECTED]>
Linux at IBM  http://www.ibm.com/linux/

Reply via email to