subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Shahaf <...@daniel.shahaf.name>
Subject Re: How to fix corrupt revision in repo?
Date Fri, 16 Sep 2011 12:37:11 GMT
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

Mime
View raw message