On 11/06/2012 08:29 AM, C. Michael Pilato wrote:
> On 11/05/2012 08:30 PM, Justin Erenkrantz wrote:
>> On Mon, Nov 5, 2012 at 1:33 PM, C. Michael Pilato <cmpilato_at_collab.net> wrote:
>>> My debugging indicates that when close_all_dirs() is called, there are a
>>> slew of unclosed directories which each have a non-zero ref_count. Save for
>>> the root directory of the edit (/tags), fetch_props == TRUE,
>>> propfind_handler->done == TRUE, and tag_closed == TRUE for all open child
>>> directories. So I'm looking around at how file references are managed to
>>> see if anything has leaked. I might have inadvertently botched something
>>> when adding the pull-contents-from-the-wc-cache logic.
>> Yup - your analysis is pretty accurate IIRC. I posted about this when
>> I was in Berlin and even had a few patches to start to clean this up.
>> However, Greg was planning on redoing how we parse the XML report;
>> when that happens, some of this management should be far simpler (as
>> we know when the tags are closed) - so the thinking was to wait until
>> that was done and then assess whether that was fixed or not. --
> I recall this patch of yours -- I even asked you about it post-Berlin. I'll
> take a look at it now and see if it can help us out.
Not seeing the active_dir_propfinds list corruption you mentioned, Justin.
I removed all the allocator stuff, and simplified the patch to mimic what is
done for the file propfind situation. One changed I did need to make was to
called open_dir() (which should be named ensure_open_dir() or somesuch)
before then trying to close directories because it seems like we were trying
to call set_dir_props() before the directory had ever been opened.
With your base patch and my changes, I was able to get an 'svn export' which
used to top out at 210Mb to peak at 27Mb instead!
I need to run the test suite and also verify that we are in fact driving the
update editor in, well, as legal a fashion as ra_serf can. :-)
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet <> www.collab.net <> Enterprise Cloud Development
Received on 2012-11-06 16:16:34 CET