[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: immense Apache memory leak, plus patch

From: Mark Phippard <markphip_at_gmail.com>
Date: Thu, 3 Sep 2009 10:14:56 -0400

On Thu, Sep 3, 2009 at 9:45 AM, C. Michael Pilato<cmpilato_at_collab.net> wrote:
> Blaise Tarr wrote:
>> Greg Stein wrote:
>>> I don't see how this would work, however, because there are *still* a
>>> lot of uses of the 'output' variable. Just changing the one in
>>> ap_pass_brigade() is going to be insufficient. Seems that all of them
>>> should really be changed.
>> That patch is just the bare minimum to prevent the crashes we've
>> experienced, and it confirms the source of the problem, but it's
>> definitely not the proper fix. Sorry, I should have stated that earlier.
>> It works because the pointers in the 'output' ap_filter_t struct still
>> happen to be valid, or so it seems.
>> Changing all the references to 'output' would more correct, but that
>> would essentially render the 'output' function parameter useless, and
>> that doesn't feel right.
>> One possibility is to create a dummy (sentinel) filter at the beginning
>> of the filter chain that would simply pass the brigade along. It would
>> always be present, and references to the filter chain using it would
>> always be valid. Implementing it would be more appropriate in Apache
>> itself, but there should be no harm in having mod_dav_svn do it.
> Please excuse my ignorance, but what would such a filter look like?
> Anything like the following?
> apr_status_t
> dav_svn__dummy_filter(ap_filter_t *f,
>                      apr_bucket_brigade *bb)
> {
>   return ap_pass_brigade(f->r->output_filters, bb);
> }


Did you see this?


How would we guarantee this would be put at the beginning of the
filter chain? Is that possible?

Is it possible to detect that mod_deflate has removed itself from the
chain and not call it?

Mark Phippard
Received on 2009-09-03 16:15:16 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.