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

Re: How to fix corrupt revision in repo?

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Fri, 16 Sep 2011 15:37:11 +0300

Quick reply, more verbose one might follow up later.

Your reply breaks the nested quoting levels, please try to avoid it, are
you sending mail as text/plain?

(more below)

David Hopkins wrote on Fri, Sep 16, 2011 at 13:05:52 +0800:
> David Hopkins wrote on Fri, Sep 16, 2011 at 08:30:14 +0800:
> > It's normal for r192 to contain "text: 162" if rep-sharing is enabled
> > or
> > if you did a copy-without-textmods from r162.
> >
>
> Ok. I think rep-sharing is probably enabled because this server was
> installed
> using SVN 1.6, and we haven't altered the setting. (It's on by default,
> yes?)
>

Yes. See $REPOS/db/rep-cache.db

> But, I can see from the CPATH which file in r192 is referencing r162
> (EDGE.CSV), and that reference doesn't make sense.
>

'cpath' is created path. It doesn't change in copies.

> > > > To answer your question: yes, most definitely a copy of the r192
> > > > (and/or r162) rev file would allow to pinpoint the problem,
> > > > however you might not want to share those files on a public list
> > > > as they may contain sensitive data (versioned file contents).
> > >
> > > I'll find out if I can release the broken revisions in their
> entirety.
> > >
> >
> > Perhaps someone would be willing to have a look at those two revision
> > files privately.
> >
> > (In fact, I might be able to do this too. But I'm reluctant to make
> > a promise or commitment about this.)
> >
> > > The corrupted revision doesn't actually contain anything
> > > particularly important (almost all the modified files in it have
> > > since been replaced by newer versions anyway). Can I fix the
> > > repository by dumping every revision except 192, and then
> > > reloading the good revisions into a new repo? Or will cause
> > > problems for the revisions after 192 since one of the revisions no
> > > longer exists?
> > >
> >
> > That won't work if files after r192 are stored as deltas against the
> > fulltext of r192.
> >
>
> Hmm, ok.
>
> I'm thinking about making a copy of the repository folder, and seeing
> what happens if I replace "text: 162" with "text: 192" in revs\0\192,
> since the offsets appear to pass the "smell test" for file size. Is
> there _any_ chance that that will work?

I don't think I've heard of precedents of this bug, but sure, try it.
If you want to test before doing it, use 'xxd -l 5 -s 670867 r162-rev-file',
it should say either "DELTA" or "PLAIN" (with no trailing end of line).

Also, standard practice, check your disk for hardware errors. (should
have said that earlier, sorry)

> Or are there other references
> I would also need to patch inside the revs\0\192 file?
>

If there are they would all appear as ASCII '162'. Revision numbers are
referred to in the text: node-revision header and sometimes in the header
of DELTA-style reps. See
https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure
Received on 2011-09-16 14:37:58 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.