Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Apache: Bugs
[Bug 47449] New: mod_mem_cache 2.0 memory leak
 

Index | Next | Previous | View Flat


bugzilla at apache

Jun 29, 2009, 8:10 AM


Views: 171
Permalink
[Bug 47449] New: mod_mem_cache 2.0 memory leak

https://issues.apache.org/bugzilla/show_bug.cgi?id=47449

Summary: mod_mem_cache 2.0 memory leak
Product: Apache httpd-2
Version: 2.0-HEAD
Platform: All
OS/Version: All
Status: NEW
Keywords: PatchAvailable
Severity: normal
Priority: P2
Component: Other Modules
AssignedTo: bugs[at]httpd.apache.org
ReportedBy: poirier[at]pobox.com


Created an attachment (id=23900)
--> (https://issues.apache.org/bugzilla/attachment.cgi?id=23900)
Fix memory leak in 2.0 mod_mem_cache

In 2.0.x, mod_mem_cache has a memory leak. The attached patch
corrects it.

The problem doesn't happen in 2.2 or trunk, since mod_mem_cache's
memory management was completely re-written for 2.2.

The leak occurs when a cache entry expires, the cache determines that
it is still valid, and updates the headers saved in the cache entry.
The previously saved headers are never freed.

Simply adding free() calls before saving the new headers resulted in
instability under load, as other threads might still be accessing the
older saved headers. The patch looks at the reference count, and if
it might not be safe to free the old headers yet, remembers the
pointers to free them later.

Some alternative approaches would have been to use a process-wide lock
to make sure no other thread could access the entry at the same time,
but that would likely have had terrible effects on performance. Or a
per-cache-entry lock might have been used, but managing those would
require a pool for each cache entry, and by the time that was all
done, we'd be half-way to the 2.2 code anyway.

I've run this for hours, and a slightly earlier version for
days, under the same load that originally reproduced the memory leak
and then the instability with the simple fix.

I don't know if mod_mem_cache in 2.0 is used widely enough to warrant
fixing this. I'd rather just move to 2.2 myself, but couldn't in this
case. But I wanted to at least provide the patch, in case someone
else is running into the problem.

--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

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

Subject User Time
[Bug 47449] New: mod_mem_cache 2.0 memory leak bugzilla at apache Jun 29, 2009, 8:10 AM

  Index | Next | Previous | View Flat
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.