RevlogError - index data corrupted when pushing new files via https

Mads Kiilerich mads at kiilerich.com
Thu Jan 27 09:18:05 CST 2011


On 01/27/2011 04:03 PM, Richard Mason 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.
>
> The server was originally running behind IIS using wsgi. I've switched
> it to the hgweb.cgi approach and also tried putting hgweb.cgi behind
> Apache. I've tried using both python 2.6 and 2.7 and have rebuilt HG
> from the source (after originally using windows binaries). I'm getting
> the same errors from hgweb.cgi no matter which python version I use or
> whether I use IIS or Apache.
>
> General browsing of the repositories through the webinterface seems
> fine. I can also clone and pull via https. The problem is when I try to
> push. It seems to be ok to push changes on existing files, but when I
> try to push a changeset with a new file in it I get a RevlogError
> indicating the index data for the new file is corrupted. HG verify
> reports no problems and I can push fine using the file system.
>
> I have checked file system security permissions and can see no problems
> (currently set full access to everyone).
>
> Could anybody suggest what may be going wrong? Error details are below:
>
> Traceback (most recent call last):
>    File "C:/ApacheWebSites/hg/hgweb.cgi", line 18, in <module>
>      wsgicgi.launch(application)
>    File "C:\Python27\lib\site-packages\mercurial\hgweb\wsgicgi.py", line
> 71, in launch
>      content = application(environ, start_response)
>    File "C:\Python27\lib\site-packages\mercurial\hgweb\hgwebdir_mod.py",
> line 107, in __call__
>      return self.run_wsgi(req)
>    File "C:\Python27\lib\site-packages\mercurial\hgweb\hgwebdir_mod.py",
> line 165, in run_wsgi
>      return hgweb(repo).run_wsgi(req)
>    File "C:\Python27\lib\site-packages\mercurial\hgweb\hgweb_mod.py",
> line 127, in run_wsgi
>      return protocol.call(self.repo, req, cmd)
>    File "C:\Python27\lib\site-packages\mercurial\hgweb\protocol.py",
> line 57, in call
>      rsp = wireproto.dispatch(repo, p, cmd)
>    File "C:\Python27\lib\site-packages\mercurial\wireproto.py", line
> 148, in dispatch
>      return func(repo, proto, *args)
>    File "C:\Python27\lib\site-packages\mercurial\wireproto.py", line
> 323, in unbundle
>      lock=lock)
>    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 might be http://mercurial.selenic.com/bts/issue1922 . Installing 
pywin32 might solve the problem.

/Mads


More information about the Mercurial mailing list