[Bug 6219] New: mercurial can generate incomplete bundle, corrupting the repository

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Sun Nov 10 17:59:20 UTC 2019


https://bz.mercurial-scm.org/show_bug.cgi?id=6219

            Bug ID: 6219
           Summary: mercurial can generate incomplete bundle, corrupting
                    the repository
           Product: Mercurial
           Version: 5.2
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at mercurial-scm.org
          Reporter: pierre-yves.david at ens-lyon.org
                CC: mercurial-devel at mercurial-scm.org
    Python Version: 2.7

I can get Mercurial to generate a faulty bundle that corrupt a repository. I
don't know why yet. Here are the steps to reproduce:

$ hg clone -U --pull https://bitbucket.org/pypy/pypy  pypy-corruption-repro
--rev ec943df3658f --rev fe07543a0b4e
adding changesets
adding manifests                                                                
adding file changes                                                             
added 38636 changesets with 122011 changes to 29784 files                       
new changesets 45eff2219997:ec943df3658f
$ hg verify -R pypy-corruption-repro
checking changesets
checking manifests
crosschecking files in changesets and manifests                                 
checking files
checked 38636 changesets with 122011 changes to 29784 files                     
checking subrepo links
.hgsubstate is corrupt in revision bf2c629d0071
# (the .hgsubstate error is harmless: it is just about bad content for the
file)
$ hg --cwd pypy-corruption-repro cat --rev bf2c629d0071 .hgsubstate
80037 greenlet
80037 lib_pypy/pyrepl
80037 lib_pypy/sqlite3
80037 testrunner
$ hg -R pypy-corruption-repro pull --rev fb429e4f28bd
https://bitbucket.org/pypy/pypy
pulling from https://bitbucket.org/pypy/pypy
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 0 changes to 0 files (-1 heads)
new changesets fb429e4f28bd
(run 'hg update' to get a working copy)
$ hg verify -R pypy-corruption-repro               
checking changesets
checking manifests
crosschecking files in changesets and manifests                                 
checking files
 .hgsubstate at 38636: manifest refers to unknown revision 1a9c23c6e418
checked 38637 changesets with 122011 changes to 29784 files                     
1 integrity errors encountered!
(first damaged changeset appears to be 38636)
checking subrepo links
.hgsubstate is corrupt in revision bf2c629d0071
$ hg --cwd pypy-corruption-repro cat --rev 38636 .hgsubstate
abort: data/.hgsubstate.i at 1a9c23c6e418: no match found!

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list