Cliff Woolley wrote:
This patch should address the mmap problems. What it does is ditch the
ownership flag and replace it with something resembling a reference count.
It's not actually a refcount because .. where would you store the
refcount? I talked with a few of the guys about that possibility but
everything we came up with was kind of ugly. So an alternative that
somebody (Sander?) came up with

yep, it was Sander's great idea

                                 was to put all of the dup'ed apr_mmap_t's
that refer to the same mmap'ed region in a ring with each other... that
way you don't have to have a single centralized location for the refcount
and you don't have lifetime issues to worry about anymore.

Greg Ames did some testing on this and says it looks good as far as he can
tell... additional eyes would be appreciated.

in case anyone cares, here's what I did:

* built httpd with Electric Fence + my core_output_filter patch to drive cleanups before the end of a keepalive connection. Ran the mod_include test case Jeff came up with that execs a script. It works as expected now.

* stepped thru the scenario above with gdb looking for weird stuff. Didn't find any.

* ran a log replay against it, mostly without EFence since it eats so much CPU under load. That worked fine too.

So +1 here.

Greg






Reply via email to