Exception during repo reload following a 'hg collapse'

Issue #1305 invalid
Rory Plaire
created an issue

I ran: hg collapse -r824:825

collapse reported this exception:

** unknown exception encountered, please report by visiting
**  http://mercurial.selenic.com/wiki/BugTracker
** Python 2.6.6 (r266:84297, Aug 24 2010, 18:13:38) [MSC v.1500 64 bit (AMD64)]
** Mercurial Distributed SCM (version 1.9.3)
** Extensions loaded: hgsubversion, rebase, collapse
Traceback (most recent call last):
  File "hg", line 42, in <module>
  File "mercurial\dispatch.pyo", line 27, in run
  File "mercurial\dispatch.pyo", line 64, in dispatch
  File "mercurial\dispatch.pyo", line 87, in _runcatch
  File "mercurial\dispatch.pyo", line 688, in _dispatch
  File "mercurial\dispatch.pyo", line 463, in runcommand
  File "mercurial\dispatch.pyo", line 742, in _runcommand
  File "mercurial\dispatch.pyo", line 696, in checkargs
  File "mercurial\dispatch.pyo", line 685, in <lambda>
  File "mercurial\util.pyo", line 389, in check
  File "c:\tools\hgcollapse\hgext\collapse.py", line 86, in collapse
    movedescendants(ui, repo, collapsed, tomove, movemap)
  File "c:\tools\hgcollapse\hgext\collapse.py", line 152, in movedescendants
    (movemap[parents[0]].rev(), movemap[parents[1]].rev()))
KeyError: 827

TortoiseHG reported this exception:
** Mercurial version (1.9.3).  TortoiseHg version (2.1.4)
** Command: --nofork workbench
** CWD: C:\_dev\Thor-hg
** Encoding: UTF-8
** Extensions loaded: hgsubversion, rebase, collapse
** Python version: 2.6.6 (r266:84297, Aug 24 2010, 18:13:38) [MSC v.1500 64 bit (AMD64)]
** Windows version: (6, 1, 7601, 2, 'Service Pack 1')
** Processor architecture: x64
** Qt-4.7.1 PyQt-4.8.3
Traceback (most recent call last):
  File "tortoisehg\hgqt\commit.pyo", line 490, in repositoryChanged
  File "tortoisehg\hgqt\commit.pyo", line 505, in refresh
  File "tortoisehg\hgqt\thgrepo.pyo", line 562, in thgmqappliedpatch
  File "tortoisehg\hgqt\thgrepo.pyo", line 554, in _thgmqpatchtags
  File "mercurial\context.pyo", line 117, in tags
  File "mercurial\localrepo.pyo", line 398, in nodetags
  File "mercurial\localrepo.pyo", line 331, in tags
  File "mercurial\localrepo.pyo", line 352, in _findtags
  File "mercurial\tags.pyo", line 30, in findglobaltags
  File "mercurial\tags.pyo", line 242, in _readtagcache
  File "mercurial\context.pyo", line 166, in filenode
  File "mercurial\context.pyo", line 155, in _fileinfo
  File "mercurial\context.pyo", line 109, in files
  File "mercurial\util.pyo", line 173, in __get__
  File "mercurial\context.pyo", line 60, in _changeset
  File "mercurial\changelog.pyo", line 181, in read
  File "mercurial\revlog.pyo", line 904, in revision
  File "mercurial\revlog.pyo", line 913, in _checkhash
RevlogError: integrity check failed on 00changelog.i:829

Comments (9)

  1. Steve Borho
    • changed status to open

    /me curses MQ

    My guess is that the collapse extension is modifying the repository without holding a repository lock, which allows TortoiseHg to take a look at it at exactly the wrong time. If verify passes, you can ignore this. Or report it to the collapse extension maintainers and see if they care.

  2. Anonymous

    When I repro it, I'll verify. Looking at the repo when it should be locked sounds like a good fit. I'll follow up with the collapse folks. Thanks!

  3. Log in to comment