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 <cmpil...@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. -- >> justin >> > > 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 <cmpil...@collab.net> CollabNet <> www.collab.net <> Enterprise Cloud Development
signature.asc
Description: OpenPGP digital signature