Issue #34 resolved

LookupError (no node) after mq patch refresh

Charles Hebert
created an issue



Please report this bug to Mercurial version (1.6). TortoiseHg version ( Command: CWD: /home/xxx/xxx/xxx/xxx/xxx Extensions loaded: qct, extdiff, shelve, transplant, localbranch, hgview, forest, graphlog, rebase, record, highlight, mq, purge, crecord Python version: 2.6.6 (r266:84292, Oct 9 2010, 12:24:52) [GCC 4.4.5] Traceback (most recent call last }}}): File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 602, in repositoryChanged self.rebuildGraph() File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 570, in rebuildGraph self.setupModels() File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 500, in setupModels self.revsetfilter, self) File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 102, in init self.setBranch(branch) File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 137, in setBranch self.ensureBuilt(row=self.fill_step) File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 188, in ensureBuilt self.graph.build_nodes(nnodes=required, rev=buildrev) File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 312, in build_nodes for vnext in self.grapher: File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 110, in revision_grapher p_revs = getparents(ctx) File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 80, in getparents return [x.rev() for x in ctx.parents() if x] File "/home/xxx/var/lib/python2.5/site-packages/mercurial/", line 120, in parents return self.parents File "/home/xxx/var/lib/python2.5/site-packages/mercurial/", line 163, in get result = self.func(obj) File "/home/xxx/var/lib/python2.5/site-packages/mercurial/", line 659, in _parents self._parents = [changectx(self._repo, x) for x in p] File "/home/xxx/var/lib/python2.5/site-packages/mercurial/", line 27, in init self._node = self._repo.lookup(changeid) File "/home/xxx/var/lib/python2.5/site-packages/mercurial/", line 456, in lookup % short(key)) Abort: working directory has unknown parent '8ba4d9da9855'! Traceback (most recent call last): File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 221, in repositoryChanged self.refresh() File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 236, in refresh if self.repo.changectx('.').thgmqappliedpatch(): File "/home/xxx/var/lib/python2.6/site-packages/tortoisehg/hgqt/", line 206, in changectx changectx = super(thgrepository, self).changectx(changeid) File "/home/xxx/var/lib/python2.5/site-packages/mercurial/", line 490, in changectx return self[changeid] File "/home/xxx/var/lib/python2.5/site-packages/mercurial/", line 131, in getitem return context.changectx(self, changeid) File "/home/xxx/var/lib/python2.5/site-packages/mercurial/", line 28, in init self._rev = self._repo.changelog.rev(self._node) File "/home/xxx/var/lib/python2.5/site-packages/mercurial/", line 517, in rev raise LookupError(node, self.indexfile, ('no node')) LookupError: 00changelog.i@8ba4d9da9855: no node }}}

Comments (3)

  1. Steve Borho

    Thanks. It seems there is still a race condition here. 'hg qrefresh' is not locking the dirstate while it updates the parent revision. We might have to find another way of detecting this is in progress, or patch MQ ourselves to add explicit locking.

  2. Log in to comment