Bug 45275

Summary: Locked files during expired page renew in disk cache
Product: Apache httpd-2 Reporter: Philippe Duveau <philippe.duveau>
Component: mod_cache_disk / mod_disk_cacheAssignee: Apache HTTPD Bugs Mailing List <bugs>
Status: RESOLVED LATER    
Severity: major CC: covener
Priority: P2 Keywords: MassUpdate, PatchAvailable
Version: 2.2.9   
Target Milestone: ---   
Hardware: PC   
OS: Windows Server 2003   
Attachments: Patch for locked files during expired pages renewing

Description Philippe Duveau 2008-06-25 05:25:06 UTC
Created attachment 22175 [details]
Patch for locked files during expired pages renewing

The problem appears when a cached page is reaching expiration and must be renew from a back end (http, ajp, coldfusion ...).

In fact the symptom is that the returned datas are never updated after expiration. Inspecting the code, it seems that the handle on the data file is not closed when the header in check for expiration and appear to be renewed.

So the patch adds a new function in the cache_provider structure for closing all opened handles on errors or expiration reached. This patch applies changes to mod_cache, mod_disk_cache and mod_mem_cache modules.

This patch is a work around and does not correct definitely the problem. In fact the conjunction of locks, multithreading and the duration between the open and close calls can makes the bug persistent on heavy loaded cached urls.

See also: Bug already reported for 2.2 (HEAD) with the id 39216. See it for explanations to reproduce the bug.
Comment 1 William A. Rowe Jr. 2018-11-07 21:08:44 UTC
Please help us to refine our list of open and current defects; this is a mass update of old and inactive Bugzilla reports which reflect user error, already resolved defects, and still-existing defects in httpd.

As repeatedly announced, the Apache HTTP Server Project has discontinued all development and patch review of the 2.2.x series of releases. The final release 2.2.34 was published in July 2017, and no further evaluation of bug reports or security risks will be considered or published for 2.2.x releases. All reports older than 2.4.x have been updated to status RESOLVED/LATER; no further action is expected unless the report still applies to a current version of httpd.

If your report represented a question or confusion about how to use an httpd feature, an unexpected server behavior, problems building or installing httpd, or working with an external component (a third party module, browser etc.) we ask you to start by bringing your question to the User Support and Discussion mailing list, see [https://httpd.apache.org/lists.html#http-users] for details. Include a link to this Bugzilla report for completeness with your question.

If your report was clearly a defect in httpd or a feature request, we ask that you retest using a modern httpd release (2.4.33 or later) released in the past year. If it can be reproduced, please reopen this bug and change the Version field above to the httpd version you have reconfirmed with.

Your help in identifying defects or enhancements still applicable to the current httpd server software release is greatly appreciated.