500 status

From: Brian Degenhardt <bmd@dont-contact.us>
Date: Wed, 8 Nov 2000 17:58:44 -0800

Reply-To:
                                       
While using squid as a web accelerator, I've noticed that if a machine that
it's attempting to accelerate crashes, or does not listen on port 80, squid
will continue to serve it's stale cache object and log a TCP_REFRESH_HIT/200
until the machine comes back up.

This is nice because it adds a little robustness to the accelerated cluster.

However, if the machine returns a 500 Internal Server Error response to
squid's query on a stale item, squid removes the cached object and replaces
it with a negatively cached error message. The same action is done with a
503 Status.

Anyways, I was wondering why this is? I can't seem to find any text in
rfc2068 that states what a cache should do in this situation, and it seems
to me that an 'Internal Server Error' is close enough to 'machine crashed'
that squid should behave the same.

If I were to hack up a patch that made squid return the stale object and
wait for a more concrete status before replacing it, would it be accepted?

cheers

-bmd
Received on Wed Nov 08 2000 - 18:58:46 MST

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:12:56 MST