RevlogError - index data corrupted when pushing new files via https

Richard Mason richard at rikware.com
Sun Jan 30 16:40:56 CST 2011


On Mon, Jan 31, 2011 at 3:41 AM, Adrian Buehlmann <adrian at cadifra.com>wrote:

> On 2011-01-30 16:48, Greg Ward wrote:
> > On Thu, Jan 27, 2011 at 10:03 AM, Richard Mason <richard at rikware.com>
> wrote:
> >> I'm trying to update a Windows http mercurial server to 1.7.3 to support
> >> dotencode repositories but have run into a problem I can't find
> mentioned
> >> anywhere.
> > [...]
> >>   File "C:\Python27\lib\site-packages\mercurial\localrepo.py", line
> 1769, in addchangegroup
> >>     fl = self.file(f)
> >>   File "C:\Python27\lib\site-packages\mercurial\localrepo.py", line 555,
> in file
> >>     return filelog.filelog(self.sopener, f)
> >>   File "C:\Python27\lib\site-packages\mercurial\filelog.py", line 24, in
> __init__
> >>     "/".join(("data", path + ".i")))
> >>   File "C:\Python27\lib\site-packages\mercurial\revlog.py", line 273, in
> __init__
> >>     raise RevlogError(_("index %s is corrupted") % (self.indexfile))
> >> RevlogError: index data/Test.txt.i is corrupted
> >
> > That's funny.  There should be no uppercase filenames in
> > .hg/store/data; that file should be _test.txt.i.
>
> That's not correct, Greg. The filename revlog.py is seeing is the
> unencoded filename. If it has a problem with a file, it will throw back
> the unencoded filename.
>
> I hacked the contents of the real file .hg/store/data/_test.txt.i inside
> a testrepo and got:
>
>  $ hg --traceback up
>   Traceback (most recent call last):
>     File "mercurial\dispatch.pyo", line 58, in _runcatch
>    File "mercurial\dispatch.pyo", line 590, in _dispatch
>    File "mercurial\dispatch.pyo", line 401, in runcommand
>    File "mercurial\dispatch.pyo", line 641, in _runcommand
>    File "mercurial\dispatch.pyo", line 595, in checkargs
>    File "mercurial\dispatch.pyo", line 588, in <lambda>
>    File "mercurial\util.pyo", line 426, in check
>    File "mercurial\extensions.pyo", line 130, in wrap
>    File "mercurial\util.pyo", line 426, in check
>    File "hgext\mq.pyo", line 3029, in mqcommand
>    File "mercurial\util.pyo", line 426, in check
>    File "mercurial\commands.pyo", line 3887, in update
>    File "mercurial\hg.pyo", line 381, in update
>    File "mercurial\merge.pyo", line 537, in update
>    File "mercurial\merge.pyo", line 341, in applyupdates
>    File "mercurial\context.pyo", line 349, in data
>    File "mercurial\util.pyo", line 169, in __get__
>    File "mercurial\context.pyo", line 249, in _filelog
>    File "mercurial\localrepo.pyo", line 555, in file
>    File "mercurial\filelog.pyo", line 24, in __init__
>    File "mercurial\revlog.pyo", line 273, in __init__
>   RevlogError: index data/Test.txt.i is corrupted
>   abort: index data/Test.txt.i is corrupted!
>
> The filename encoding is done by the store opener, which is a layer
> below revlog.py.
>
> > Is there really a
> > file called .hg/store/data/Test.txt.i (uppercase T) in either the
> > source or destination repo?
>
> No, there wouldn't be, even if Richard had no problem. That's an
> artificial internal name. There is not such path in the filesystem. At
> least not for a repo using a recent enough repo format (e.g. fncache,
> dotencode).
>
> > Other relevant questions just to rule out other possible problems:
> >   * any virus scanner on the target machine?  if so, is it disabled
> > for the target .hg directory?
> >   * is it a local filesystem?
> >   * what filesystem?
> >   * what version of Windows?
>
> Extensions used might be interesting too.
>

Hi,

Thanks for the help. re: the questions:
* Running Microsoft Security Essentials - I'll try disabling it when I next
get a chance to test
* It's a local filesystem running NTFS. It is on a RAID 5 array using a
controller on the mobo
* Windows 7 x64 Ultimate
* Not knowingly running any extensions

And as Adrian indicated - the file doesn't actually exist in .hg/store/data/

Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial/attachments/20110131/52219fe8/attachment.htm>


More information about the Mercurial mailing list