You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2002/11/14 17:04:04 UTC

DO NOT REPLY [Bug 14556] New: - mod_cache with mod_mem_cache enabled doesnt cash modified documents

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14556>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14556

mod_cache with mod_mem_cache enabled doesnt cash modified documents

           Summary: mod_cache with mod_mem_cache enabled doesnt cash
                    modified documents
           Product: Apache httpd-2.0
           Version: 2.0.43
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Major
          Priority: Other
         Component: mod_cache
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: rx@armstrike.com


When document is cashed, mod_cache.c stores time of cash in date variable 
(info->date), when it happenes debug says "Added date header". Then every 
other request will use this cash and date variable will always be the same 
with the date when cash stored. All works fine yet, but that happens if cashed 
document was changed: mod_cache stores new last modified date of the document 
in the lastmod variable, and then compares if lastmod > date then 
lastmod=date, debug says "lastmod is in the future replacing with now"(but 
date its not now, its date of last cash?). The problem is how mod_cache 
calculates cash expire. 

expiry date = now + min((date - lastmod) * factor, maxexpire)

If document doesnt have Expire in the headers, then expire time will be: now + 
0 * factor = now, and mod_cache will never cash document anymore, before 
apache restart when cashed headers with old date will be deleted. 

I dont know is it supposed to work this way, or maybe some removal algorithms 
of old cashed dates doesnt work? For now i deleted "if lastmod>date then 
lastmod=date" piece of code and all works fine. 

Also i added:
expiry date = now + min(((date - lastmod) * factor) + conf->defex, maxexpire)

so if i set "CacheLastModifiedFactor 0" and "CacheDefaultExpire time" in 
httpd.conf, i can manually add expire time in seconds if i dont want to use 
Expires headers, so should be the way to manually enter expire time besides 
Expire headers.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org