[Bug 3971] New: Tag of missing revision causes 500 server error

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Wed Jun 26 13:37:01 CDT 2013


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

          Priority: normal
            Bug ID: 3971
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: Tag of missing revision causes 500 server error
          Severity: bug
    Classification: Unclassified
                OS: Windows
          Reporter: swpalmer at gmail.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 2.6.1
         Component: hgweb
           Product: Mercurial

Environment: Windows running Mercurial 2.6.1 via WSGI on Apache

One of the repos being served always reports a 500 internla error message and
the Apache error log  shows:
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153] mod_wsgi (pid=3372):
Exception occurred processing WSGI script 'C:/Program Files/Apache Software
Foundation/Apache2.2/cgi-bin/kayak-hgweb.wsgi'.
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153] Traceback (most
recent call last):
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgwebdir_mod.py", line
153, in __call__
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     return
self.run_wsgi(req)
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgwebdir_mod.py", line
218, in run_wsgi
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     return
hgweb(repo).run_wsgi(req)
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgweb_mod.py", line 245,
in run_wsgi
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     content =
getattr(webcommands, cmd)(self, req, tmpl)
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\webcommands.py", line 265,
in changeset
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     ctx =
webutil.changectx(web.repo, req)
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\webutil.py", line 220, in
changectx
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     return
changeidctx(repo, changeid)
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\webutil.py", line 203, in
changeidctx
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     ctx =
repo[changeid]
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\localrepo.py", line 387, in
__getitem__
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     return
context.changectx(self, changeid)
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\context.py", line 76, in __init__
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     self._rev =
repo.changelog.rev(self._node)
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\changelog.py", line 184, in rev
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     r =
super(changelog, self).rev(node)
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]   File
"C:\\Python27\\lib\\site-packages\\mercurial\\revlog.py", line 298, in rev
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153]     return
self._nodecache[node]
[Wed Jun 26 13:37:03 2013] [error] [client 192.168.0.153] RevlogError

It turns out that the first line in .hgtags for this repo is a tag for which
there is no revision with the specified hash.
If I go directly to a more specific page (that doesn't need to show any tag
info?) like _url_/shortlog, _url_/rev/123, etc. the page is served properly.

Unable to reproduce with standalone "hg serve"

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list