> > Has anyone else noticed a client memory leak when using
> > svn:externals in the 1.7.3 client?
> >
> > We have a large project with tens of thousands of externals.
> > When checked out with a 1.6 client, it uses 150MB of memory.
> > When checked out with a 1.7 client it uses >1.5GB of memory.
> > Same memory issue occurs with an update.
> >
> > I'm still putting a test script together to show the behavior,
> > but it appears to be leaking 400k per external when I
> > watch task manager in Windows.
> >
> > We first observed this with TortoiseSVN, but the same
> > behavior exists with the command line client.
> >
> > I was hoping a developer may have valgrind setup
> > and could catch this easier.
> >
> > Server version does not matter, this occurs with
> > both a 1.6.17 and a 1.7.3 server when a 1.7.3
> > client is used.  Does not occur if a 1.6.17 client
> > is used.  All testing was done with neon, but
> > that is only because serf does not complete
> > the test.
> >
> > I'm in the middle of creating the script to
> > create the test case, but was hoping
> > to get a fix into 1.7.4, so I'm posting this early.
> 
> It might already be fixed: I see a leak with 1.7.x@r1293812 but r1293813
> appears to fix it.
Definitely not fixed, at least for https:// externals.  This is what I 
did:

svn co https://svn.apache.org/repos/asf/subversion/branches/1.7.x svn_17x
cd svn_17x
sh get-deps.sh
sh autogen.sh
./configure --prefix=/usr/lfs/v0/apps/subversion/1.7.x --without-apxs 
--without-swig --without-sasl --disable-mod-activation 
--enable-maintainer-mode --enable-debug
make all
make install

(This didn't build neon correctly, but might help diagnose
 the serf failure.)

./svn --version
svn, version 1.7.4-dev (under development)
   compiled Feb 28 2012, 09:26:45

Copyright (C) 2012 The Apache Software Foundation.
This software consists of contributions made by many people; see the 
NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_svn : Module for accessing a repository using the svn network 
protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using 
serf.
  - handles 'http' scheme
  - handles 'https' scheme

subversion/svn/checkout-cmd.c:168: (apr_err=104)
subversion/libsvn_client/checkout.c:229: (apr_err=104)
subversion/libsvn_client/update.c:551: (apr_err=104)
subversion/libsvn_client/update.c:412: (apr_err=104)
subversion/libsvn_ra_serf/update.c:2402: (apr_err=104)
subversion/libsvn_ra_serf/update.c:2402: (apr_err=104)
svn: E000104: Error retrieving REPORT (104): Connection reset by peer

running under valgrind gives a summary of:
==1746== LEAK SUMMARY:
==1746==    definitely lost: 90,112 bytes in 7 blocks
==1746==    indirectly lost: 1,413,797 bytes in 44,850 blocks
==1746==      possibly lost: 199 bytes in 6 blocks
==1746==    still reachable: 33,364 bytes in 2,250 blocks
==1746==         suppressed: 0 bytes in 0 blocks
==1746==
==1746== For counts of detected and suppressed errors, rerun with: -v
==1746== ERROR SUMMARY: 505 errors from 143 contexts (suppressed: 66 from 
8)


And that is before it really started checking out any externals...
The complete valgrind log is huge, so I didn't want to send it to the 
list.

I'll also work on updating serf and getting neon working in the build
so we can debug the actual svn:externals memory leak.

Kevin R.

Reply via email to