www.kernel.org/hg/linux-2.6 corrupted?

Benoit Boissinot bboissin at gmail.com
Wed Dec 6 10:24:20 UTC 2006


On 12/6/06, Paul Jackson <pj at sgi.com> wrote:
> It seems that running "hg pull -u" from kernel.org linux-2.6 corrupts
> my hg repositories.  They pass verify before the pull, the pull fails,
> and they fail verify thereafter.
>
> I suspect something is amiss with http://www.kernel.org/hg/linux-2.6.
>
We believe it may be an rsync problem (Thomas saw the same thing as you)

> $ hg pull -u
> pulling from http://www.kernel.org/hg/linux-2.6
> searching for changes
> adding changesets
> adding manifests
> adding file changes
> added 2691 changesets with 7991 changes to 3501 files
> abort: data/Documentation/kernel-parameters.txt.i: no node 3a221e8f7ca4959f4ff84e770b3ac4693c03e9fe!

That's the update failing, not the pull.

> Not being sure if the corruption was in my existing repository, or
> coming from kernel.org, I ran "hg verify" on both this repository (call
> it "A"), and another one I had on a different machine (call it "B").
>
> The verify on A failed with hundreds of complaints such as, for
> example:
>
> node 90244fc8531929506347a96d6055801011e92f2c in manifests not in drivers/scsi/libsrp.c
> node 6ed56fa25946e076274e97f395f1bc5a01a192f0 in manifests not in drivers/scsi/lpfc/lpfc.h
> node 9c1ac08ec1f9a1a11b5b9acda154aec6baf208f4 in manifests not in drivers/scsi/lpfc/lpfc.h
> node 70ced890159e9105e348ea8d2a8281ae592025c2 in manifests not in drivers/scsi/lpfc/lpfc.h
> node 43bd9c72bfc15347060f86d24d85826bfa9ff63c in manifests not in drivers/scsi/lpfc/lpfc_attr.c


The problem is that the repo in kernel.org is rsync'ed, and we use a
lockless scheme for readers.
So if the changelog is rsynced before the data, a pull may lead to a
repo corruption.
We are working on it for the new repo layout, so that rsync goes in
the right order:

.hg/store/
              data/<files>{i,d}
              meta/00manifest.{i,d}
              meta/99changelog.{i,d}

regards,

Benoit



More information about the Mercurial mailing list