[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