[prev in list] [next in list] [prev in thread] [next in thread]
List: mercurial
Subject: RE: cloning via http produces http 500 path/to/repo "not found" error
From: "Jones, JonathanX" <jonathanx.jones () intel ! com>
Date: 2017-01-30 21:11:46
Message-ID: E1597B9F2D82734B92A608867D0517C0017EEE09 () fmsmsx107 ! amr ! corp ! intel ! com
[Download RAW message or body]
We think we may have traced this problem back to some odd permissions \
misconfiguration in the .hg folder that resulted in this behavior.
To answer Simon's questions, however:
Yes, the path exists on the server.
And yes, it was accessible by the account that runs the web server process (in our \
case IIS).
And yes, the users whom it worked for were using the same command (hg clone).
To give a little more detail in case it helps someone:
The problem seemed to stem from some anomalous permissions on files such as \
.hg/undo.bookmarks and other files in the .hg folder which perhaps stem from a \
misconfiguration of the server itself (inherited CREATOR OWNER permissions \
propagating which would sometimes cause repository permissions to not conform to how \
they should have been configured).
It's beyond the scope of this conversation really to really delve into the server \
misconfiguration, but suffice it to say, once the .hg folder permissions were \
corrected on all files and sub-folders, the problems ceased.
FYI, it was not obvious that the individual file permissions were wrecked until we \
started checking them one by one-- the child folders seemed to be set to inherit \
permissions.
Again, I hope that helps others using Mercurial on Windows.
Regards,
Jon
-----Original Message-----
From: Simon King [mailto:simon@simonking.org.uk]
Sent: Monday, 30 January, 2017 01:34
To: Jones, JonathanX <jonathanx.jones@intel.com>
Cc: mercurial@mercurial-scm.org
Subject: Re: cloning via http produces http 500 path/to/repo "not found" error
On Wed, Jan 25, 2017 at 10:13 PM, Jones, JonathanX <jonathanx.jones@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
_______________________________________________
Mercurial mailing list
Mercurial@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic