D7321: revlog: deal with nodemap deletion within the index

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Sat Nov 9 06:58:20 UTC 2019


martinvonz added a comment.


  In D7321#107839 <https://phab.mercurial-scm.org/D7321#107839>, @marmoute wrote:
  
  > In D7321#107805 <https://phab.mercurial-scm.org/D7321#107805>, @martinvonz wrote:
  >
  >> I get a traceback from `test-copytrace-heuristics.t` with this patch.
  >
  > Well… I don't. Can you share some details? How are you running your tests?
  
  I think I figured it out. And so did you, I think. We just didn't know that were talking about the same failure :) On D7320 <https://phab.mercurial-scm.org/D7320>, you wrote:
  
  > Without this change, D7321 <https://phab.mercurial-scm.org/D7321> crash horribly, and debugging show that the value left out is clearly a non-sentinel value that should be deleted.
  > With this change, D7321 <https://phab.mercurial-scm.org/D7321> pass all test flawlessly.
  
  I think the "crash horribly" there was referring to `test-copytrace-heuristics.t`. If I don't recompile after applying D7320 <https://phab.mercurial-scm.org/D7320> and D7321 <https://phab.mercurial-scm.org/D7321> (this patch), then I get a crash ending like this:
  
    +    File "/usr/local/google/home/martinvonz/hg/mercurial/bundle2.py", line 489, in _processchangegroup
    +      ret = cg.apply(op.repo, tr, source, url, **kwargs)
    +    File "/usr/local/google/home/martinvonz/hg/mercurial/changegroup.py", line 345, in apply
    +      self._unpackmanifests(repo, revmap, trp, progress)
    +    File "/usr/local/google/home/martinvonz/hg/mercurial/changegroup.py", line 258, in _unpackmanifests
    +      repo.manifestlog.getstorage(b'').addgroup(deltas, revmap, trp)
    +    File "/usr/local/google/home/martinvonz/hg/mercurial/manifest.py", line 1762, in addgroup
    +      deltas, linkmapper, transaction, addrevisioncb=addrevisioncb
    +    File "/usr/local/google/home/martinvonz/hg/mercurial/revlog.py", line 2305, in addgroup
    +      if node in self.nodemap:
    +  IndexError: could not access rev 3
    +  [1]
  
  I assume that's what you also saw, but please confirm.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7321/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7321

To: marmoute, indygreg, #hg-reviewers
Cc: martinvonz, mercurial-devel


More information about the Mercurial-devel mailing list