Re: [PATCH] reload into If-None-Match

From: Tsantilas Christos <chtsanti_at_users.sourceforge.net>
Date: Fri, 12 Jul 2013 15:31:13 +0300

Hi all,

 Finally I did not apply the last patch I posted because I found a bug.
Squid hits an assertion in clientReplyContext::processExpired at
client_side_reply.cc:245,
assert(http->storeEntry()->lastmod >= 0);

Moreover looking in the code I am seeing that objects which does not
have a "Last-Modified" header are never stored in squid cache.
So in the patch I am posting here I removed the part of the patch which
allowed to use a stored entry which does not have Last-Modified header
but have a strong etag. This is the part which causes the assertion .
Alternatively we can just remove the assertion.

However still I do not know how an entry with lastmod=-1 (no
Last-Modified header) found in my cache and causes the above assertion.

Any opinion on this?

On 06/28/2013 04:50 PM, Tsantilas Christos wrote:
> This patch sends an If-None-Match request, when we need to re-validate
> if a cached object which has a strong ETag is still valid.
>
> This is also done in the cases an HTTP client request contains HTTP
> headers prohibiting a from-cache response (i.e., a "reload" request).
> The use of If-None-Match request in this context violates RFC 2616 and
> requires using reload-into-ims option within refresh_pattern squid.conf
> directive.
>
> The exact definition of a "reload request" and the adjustment/removal of
> "reload" headers is the same as currently used for reload-into-ims
> option support. This patch is not modifying that code/logic, just adding
> an If-None-Match header in addition to the IMS header that Squid already
> adds.
>
> This is a Measurement Factory Project

Received on Fri Jul 12 2013 - 12:31:34 MDT

This archive was generated by hypermail 2.2.0 : Fri Jul 12 2013 - 12:00:20 MDT