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

Re: svn commit: rev 4532 - in trunk/subversion: include libsvn_wc libsvn_ra_local libsvn_client mod_dav_svn libsvn_ra_svn libsvn_repos libsvn_ra_dav svnserve

From: <philip_at_codematters.co.uk>
Date: 2003-01-24 00:08:41 CET

jerenkrantz@tigris.org writes:

 Author: jerenkrantz
 Date: 2003-01-23 13:00:42 -0600 (Thu, 23 Jan 2003)
 New Revision: 4532
 
 Modified:
    trunk/subversion/include/svn_ra.h
    trunk/subversion/include/svn_repos.h
    trunk/subversion/libsvn_client/diff.c
    trunk/subversion/libsvn_ra_dav/fetch.c
    trunk/subversion/libsvn_ra_local/ra_plugin.c
    trunk/subversion/libsvn_ra_svn/client.c
    trunk/subversion/libsvn_repos/reporter.c
    trunk/subversion/libsvn_wc/adm_crawler.c
    trunk/subversion/mod_dav_svn/update.c
    trunk/subversion/svnserve/serve.c
 Log:
 Add pool parameter to the svn_repos_*_path functions. This eliminates
 memory problems on update operations with a large number of files in a
 directory. (Also fixes a similar problem with svn ls -R - see below.)

I am seeing massive regression test failures with this patch when I
enable APR pool debugging. A simple 'svn status -u' SEGVs over
ra_local. I haven't tracked it down yet, but valgrind shows lots of
access to free'd memory, such as

$ valgrind -q --num-callers=9 svn st -u working_copies/basic_tests-1/
==30307== Invalid read of size 1
==30307== at 0x40047F6A: strlen (/home/pm/sw/valgrind-1.0.4/vg_clientfuncs.c:432)
==30307== by 0x40308FAD: svn_stringbuf_create (../svn/subversion/libsvn_subr/svn_string.c:275)
==30307== by 0x40269B11: report_revisions (../svn/subversion/libsvn_wc/adm_crawler.c:209)
==30307== by 0x4026A085: report_revisions (../svn/subversion/libsvn_wc/adm_crawler.c:365)
==30307== by 0x4026A085: report_revisions (../svn/subversion/libsvn_wc/adm_crawler.c:365)
==30307== by 0x4026A2E2: svn_wc_crawl_revisions (../svn/subversion/libsvn_wc/adm_crawler.c:447)
==30307== by 0x4025F87C: add_update_info_to_status_hash (../svn/subversion/libsvn_client/status.c:129)
==30307== by 0x4025F9B1: svn_client_status (../svn/subversion/libsvn_client/status.c:177)
==30307== by 0x8051606: svn_cl__status (../svn/subversion/clients/cmdline/status-cmd.c:82)
==30307== Address 0x4386CB1C is 0 bytes inside a block of size 16 free'd
==30307== at 0x40047986: free (/home/pm/sw/valgrind-1.0.4/vg_clientfuncs.c:180)
==30307== by 0x40404953: pool_clear_debug (apr_pools.c:1389)
==30307== by 0x404049D0: apr_pool_clear_debug (apr_pools.c:1449)
==30307== by 0x40305333: svn_pool_clear_debug (../svn/subversion/libsvn_subr/pool.c:150)
==30307== by 0x4026A0AB: report_revisions (../svn/subversion/libsvn_wc/adm_crawler.c:372)
==30307== by 0x4026A085: report_revisions (../svn/subversion/libsvn_wc/adm_crawler.c:365)
==30307== by 0x4026A085: report_revisions (../svn/subversion/libsvn_wc/adm_crawler.c:365)
==30307== by 0x4026A2E2: svn_wc_crawl_revisions (../svn/subversion/libsvn_wc/adm_crawler.c:447)
==30307== by 0x4025F87C: add_update_info_to_status_hash (../svn/subversion/libsvn_client/status.c:129)

Reverting rev 4532 makes the tests pass and valgrind no longer
complains.

-- 
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 14 02:10:32 2006

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