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

Re: [Issue 4129] predecessors links on root node-revision skip revisions

From: Daniel Shahaf <danielsh_at_elego.de>
Date: Wed, 25 Jul 2012 10:55:39 +0100

Philip Martin wrote on Wed, Jul 25, 2012 at 10:49:36 +0100:
> Stefan Fuhrmann <stefan.fuhrmann_at_wandisco.com> writes:
>
> > Could you please fix the UI experience first?
> > Currently, svnadmin verify will first verify the
> > root nodes of all revisions of the whole repository
> > and *then* start verifying all revisions showing
> > some progress info.
> >
> > Two issues with that:
> > (1) The first part takes about as long as the second,
> > i.e. minutes or hours w/o visible feedback.
> > (2) Doing that verification as part of the second
> > stage would be virtually for free as the node caches
> > are hot.
>
> I attached to the issue a repository that demonstrates the corruption;
> verify doesn't report a problem on that repository. What does verify
> check?
>

validate_root_noderev() catches an instance of the #4129 corruption and
in its docstring xrefs svn_fs_fs__verify(), so I think the checks in the
former are done in the latter too.

Daniel

> valgrind does report a problem with verify:
>
> $ valgrind -q subversion/svnadmin/.libs/lt-svnadmin verify repo
> * Verified revision 0.
> ==9089== Invalid read of size 1
> ==9089== at 0x4C25FF8: memcpy (mc_replace_strmem.c:497)
> ==9089== by 0x54E73F5: svn_stringbuf_appendbytes (string.c:558)
> ==9089== by 0x54ECEDC: svn_temp_serializer__push (temp_serializer.c:245)
> ==9089== by 0x61132C0: serialize_svn_string (temp_serializer.c:130)
> ==9089== by 0x6113BDA: serialize_txdeltawindow (temp_serializer.c:479)
> ==9089== by 0x6113C70: svn_fs_fs__serialize_txdelta_window (temp_serializer.c:505)
> ==9089== by 0x54B010B: membuffer_cache_set (cache-membuffer.c:1241)
> ==9089== by 0x54B0AC2: svn_membuffer_cache_set (cache-membuffer.c:1766)
> ==9089== by 0x54B2486: svn_cache__set (cache.c:101)
> ==9089== by 0x60FCE0B: set_cached_window (fs_fs.c:4417)
> ==9089== by 0x60FD5F5: read_window (fs_fs.c:4629)
> ==9089== by 0x60FD69C: get_combined_window (fs_fs.c:4655)
> ==9089== Address 0x7e7f575 is 0 bytes after a block of size 5 alloc'd
> ==9089== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
> ==9089== by 0x59516D0: pool_alloc (apr_pools.c:1463)
> ==9089== by 0x5289811: svn_txdelta_read_svndiff_window (svndiff.c:977)
> ==9089== by 0x60FD50E: read_window (fs_fs.c:4618)
> ==9089== by 0x60FD69C: get_combined_window (fs_fs.c:4655)
> ==9089== by 0x60FDC57: get_contents (fs_fs.c:4802)
> ==9089== by 0x60FDD22: rep_read_contents (fs_fs.c:4827)
> ==9089== by 0x54E306E: svn_stream_read (stream.c:143)
> ==9089== by 0x54E3CED: svn_stream_copy3 (stream.c:497)
> ==9089== by 0x4E3C9D2: dump_node (dump.c:627)
> ==9089== by 0x4E3CF70: add_file (dump.c:789)
> ==9089== by 0x527B6F9: add_file (cancel.c:167)
>
>
> --
> Certified & Supported Apache Subversion Downloads:
> http://www.wandisco.com/subversion/download
Received on 2012-07-25 11:56:19 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.