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