cloning via http produces http 500 path/to/repo "not found" error

Simon King simon at simonking.org.uk
Mon Jan 30 09:33:39 UTC 2017


On Wed, Jan 25, 2017 at 10:13 PM, Jones, JonathanX
<jonathanx.jones at intel.com> wrote:
> When some users try to clone a repo using the web url, they receive an error
> such as:
>
>
>
> “abort: HTTP Error 500: repository D:\repos\ repository1 not found”
>
>
>
> But if they use the UNC path (we’re hosting Mercurial on Windows Server 2k8
> by the way), it works fine.
>
>
>
> Traceback (anonymized):
>
>
>
> C:\Users\username\Desktop\repos\REPO>hg clone
> https://username@serverurl.com/in
>
> dex.py/REPO . --debug --traceback
>
> using https://serverurl.com/index.py/REPO
>
> http auth: user username, password not set
>
> sending capabilities command
>
> serverurl.com certificate matched fingerprint  []
>
> [HgKeyring] Keyring URL: https://serverurl.com/index.py/REPO
>
> [HgKeyring] Looking for password for user username and url
> https://serverurl.c
>
> om/index.py/REPO
>
> [HgKeyring] Keyring password found. Url:
> https://serverurl.com/index.py/REPO,
>
> user: username, passwd: ***********
>
> serverurl.com certificate matched fingerprint []
>
> Traceback (most recent call last):
>
>   File "mercurial\dispatch.pyo", line 140, in _runcatch
>
>   File "mercurial\dispatch.pyo", line 850, in _dispatch
>
>   File "mercurial\dispatch.pyo", line 611, in runcommand
>
>   File "mercurial\dispatch.pyo", line 941, in _runcommand
>
>   File "mercurial\dispatch.pyo", line 912, in checkargs
>
>   File "mercurial\dispatch.pyo", line 847, in <lambda>
>
>   File "mercurial\util.pyo", line 677, in check
>
>   File "mercurial\commands.pyo", line 1371, in clone
>
>   File "mercurial\hg.pyo", line 304, in clone
>
>   File "mercurial\hg.pyo", line 138, in peer
>
>   File "mercurial\hg.pyo", line 115, in _peerorrepo
>
>   File "mercurial\httppeer.pyo", line 264, in instance
>
>   File "mercurial\httppeer.pyo", line 58, in _fetchcaps
>
>   File "mercurial\httppeer.pyo", line 172, in _call
>
>   File "mercurial\httppeer.pyo", line 119, in _callstream
>
>   File "urllib2.pyo", line 410, in open
>
>   File "urllib2.pyo", line 523, in http_response
>
>   File "urllib2.pyo", line 442, in error
>
>   File "urllib2.pyo", line 382, in _call_chain
>
>   File "urllib2.pyo", line 897, in http_error_401
>
>   File "mercurial\url.pyo", line 452, in http_error_auth_reqed
>
>   File "hgext\mercurial_keyring.pyo", line 400, in
> basic_http_error_auth_reqed
>
>   File "urllib2.pyo", line 872, in http_error_auth_reqed
>
>   File "mercurial\url.pyo", line 463, in retry_http_basic_auth
>
>   File "urllib2.pyo", line 410, in open
>
>   File "urllib2.pyo", line 523, in http_response
>
>   File "urllib2.pyo", line 448, in error
>
>   File "urllib2.pyo", line 382, in _call_chain
>
>   File "urllib2.pyo", line 531, in http_error_default
>
> HTTPError: HTTP Error 500: repository D:\Repositories\REPO not found
>
> abort: HTTP Error 500: repository D:\Repositories\REPO not found
>
>

Hi,

Does the path from the error message actually exist on the server? Is
it accessible by the user account that runs the web server process?

You say that this only affects some users, which seems surprising
since this looks like a server misconfiguration. Are you sure that the
users for which it *does* work are running the exact same command?

Simon



More information about the Mercurial mailing list