Philip Martin wrote on Fri, 16 Mar 2018 13:44 +0000:
> "NOCERA, ANDY" <an2124_at_att.com> writes:
>
> > I used dump and load to debug the malformed node revision ID. Here
> > are my steps and what learned. Looks like the revs' file text: entry
> > has a zero instead of size. By just editing the size, verify worked.
> > No other change was required. The question is can we correct this
> > ourselves without a dump and load?
> >
> > db/revs/0/1 /usr/tmp/xrepox/db/revs/0/1
> > diff db/revs/0/1 /usr/tmp/xrepox/db/revs/0/1
> > 18c18
> > < text: 1 76 48 0 ec69809945c46f2bb74e99a3ff7cd917
> > ---
> > > text: 1 76 48 48 ec69809945c46f2bb74e99a3ff7cd917
> > 22c22
>
> That looks like issue 4554
>
> https://issues.apache.org/jira/projects/SVN/issues/SVN-4554
>
> Editing the file is unlikely to work. Later revisons refer to data in
> earlier revisions via a byte offset into the earlier file. When you
> edit "0" to "48" you have changed the byte offset of all the data beyond
> the edit and that breaks the references in all the later files.
Changing "0" to "48" would also have broken the <root-offset> and
<cp-offset> offsets in that revision file, so how come 'verify' worked after
that change?
Cheers,
Daniel
(The <foo-offset> terms are from the 'structure' file and describe
format 6; format 7 has <l2p offset> and <p2l offset> which are
analogous)
Received on 2018-03-16 15:45:23 CET