[Bug 3954] New: revlog: LookupError on filename @README.txt

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Wed Jun 5 16:12:16 CDT 2013


http://bz.selenic.com/show_bug.cgi?id=3954

          Priority: normal
            Bug ID: 3954
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: revlog: LookupError on filename @README.txt
          Severity: bug
    Classification: Unclassified
                OS: Linux
          Reporter: victor.stinner at gmail.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 2.4.1
         Component: Mercurial
           Product: Mercurial

Hi,

Someone added a new file called @README.txt to the repository of the Python
project (http://hg.python.org/cpython). After that, I got some HG errors. I
removed the repository and created a new clone: the error was gone. It looks
like the problem only occurs on an existing repository which was updated, not
on a fresh clone.

I tried to reproduce the bug on a simple repository, but I failed to reproduce
it :-/

I'm using the share mode with the following directories:

.../default: default branch
.../2.7: share with default, 2.7 branch
.../3.3: share with default, 3.3 branch
.../3.2: share with default, 3.2 branch

The @README.txt issue was discussed on python-committers mailing list:
http://mail.python.org/pipermail/python-committers/2013-May/002565.html

Antoine Pitrou ran "hg verify" on the HG server: no error. See:
http://mail.python.org/pipermail/python-committers/2013-May/002571.html

Here are some infos below. Tell me if you need more.

------------

$ hg --version
Mercurial Distributed SCM (version 2.4.1)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2012 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

------------

$ hg verify
repository uses revlog format 1
checking changesets
checking manifests                                                              
crosschecking files in changesets and manifests                                 
checking files
 data/Lib/idlelib/idle_test/@README.txt.i at 83941: missing revlog!                
 83941: empty or missing Lib/idlelib/idle_test/@README.txt                      
 Lib/idlelib/idle_test/@README.txt at 83941: 7573717b9e6f in manifests not found   
 Lib/idlelib/idle_test/README.txt at 83969: empty or missing copy source revlog
Lib/idlelib/idle_test/@README.txt:7573717b9e6f                                  
warning: copy source of 'Modules/_threadmodule.c' not in parents of
60ad83716733                                                                    
warning: copy source of 'Objects/bytesobject.c' not in parents of 64bb1d258322  
warning: copy source of 'Objects/stringobject.c' not in parents of 357e268e7c5f 
9873 files, 84039 changesets, 185613 total revisions                            
3 warnings encountered!
4 integrity errors encountered!
(first damaged changeset appears to be 83941)

------------

$ cat .hg/requires 
revlogv1
fncache
store
dotencode

------------

$ hg log -p --pager=never --debug --traceback
(...)

Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 88, in
_runcatch
    return _dispatch(req)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 741, in
_dispatch
    cmdpats, cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 514, in
runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 189,
in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/hgext/pager.py", line 130, in
pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 189,
in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/hgext/color.py", line 371, in
colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 831, in
_runcommand
    return checkargs()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 802, in
checkargs
    return cmdfunc()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 738, in
<lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 472, in
check
    return func(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 144,
in wrap
    util.checksignature(origfn), *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 472, in
check
    return func(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/hgext/mq.py", line 3546, in
mqcommand
    return orig(ui, repo, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 472, in
check
    return func(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/mercurial/commands.py", line 4184,
in log
    for ctx in cmdutil.walkchangerevs(repo, matchfn, opts, prep):
  File "/usr/lib64/python2.7/site-packages/mercurial/cmdutil.py", line 1228, in
iterate
    prepare(ctx, fns)
  File "/usr/lib64/python2.7/site-packages/mercurial/commands.py", line 4182,
in prep
    displayer.show(ctx, copies=copies, matchfn=revmatchfn)
  File "/usr/lib64/python2.7/site-packages/mercurial/cmdutil.py", line 667, in
show
    self._show(ctx, copies, matchfn, props)
  File "/usr/lib64/python2.7/site-packages/mercurial/cmdutil.py", line 774, in
_show
    self.showpatch(changenode, matchfn)
  File "/usr/lib64/python2.7/site-packages/mercurial/cmdutil.py", line 791, in
showpatch
    match=matchfn, stat=False)
  File "/usr/lib64/python2.7/site-packages/mercurial/cmdutil.py", line 613, in
diffordiffstat
    changes, diffopts, prefix=prefix):
  File "/usr/lib64/python2.7/site-packages/mercurial/patch.py", line 1662, in
difflabel
    for chunk in func(*args, **kw):
  File "/usr/lib64/python2.7/site-packages/mercurial/patch.py", line 1724, in
trydiff
    tn = getfilectx(f, ctx2).data()
  File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 491, in
data
    return self._filelog.read(self._filenode)
  File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 246, in
__get__
    result = self.func(obj)
  File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 399, in
_filenode
    return self._filelog.lookup(self._fileid)
  File "/usr/lib64/python2.7/site-packages/mercurial/revlog.py", line 776, in
lookup
    raise LookupError(id, self.indexfile, _('no match found'))
LookupError: data/Lib/idlelib/idle_test/@README.txt.i at 7573717b9e6f: no match
found
abandon : data/Lib/idlelib/idle_test/@README.txt.i at 7573717b9e6f: 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