httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject DO NOT REPLY [Bug 44696] mod_cache sometimes serves old content despite having fetched new content
Date Tue, 12 Aug 2008 19:21:11 GMT

--- Comment #5 from Ruediger Pluem <>  2008-08-12 12:21:10 PST ---
(In reply to comment #3)
> Created an attachment (id=22433)
 --> ( [details]
> patch to allow multiple passes
> Thanks for pointing these out,
> for the first one, I have modified the patch to look for APR_BUCKET_EOS before
> commiting the headers. (at both points)

Thanks for the patch. Some comments:

1. I know that mod_disk_cache does the same, but I am a bit little worried that
   there might be brigades that contain an EOS bucket which is *not* the last
   bucket of the brigade. Yes this means we would need to iterate over
   the whole brigade each time to find out if there is an EOS bucket in the
   brigade or not. This increases effort and lowers performance.

2. If you move 

   cache->info = info;

   before the first 

   if (cache->stale_handle) {

   you can merge both 

   if (cache->stale_handle) {

   together in one block.

> I do not understand the second issue,
> if we have a fresh entitiy 1:head/url 1:body/url in our cache,
> and Request A comes in with max-age = 0,
> as it proceeds, the body gets written first, so we now have 1:head/url
> 2:body/url
> Now assuming that at this point Request B comes in, and reads the headers 
> 1:head/url but since it does not have max-age=0, it decides it can make do
> with the current body, but the body is 2:body/url
> However, there is no harm in serving a newer response? we only have a problem
> with serving stale content, and 2:body/url is not stale.

2:body is not stale, but 1:headers and 2:body might not match together, e.g.
regarding the Etag or Content-MD5 headers. Also Range requests could deliver
false results in this case.

Configure bugmail:
------- You are receiving this mail because: -------
You are the assignee for the bug.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message