abort: error: EOF occurred in violation of protocol (_ssl.c:590)

Augie Fackler raf at durin42.com
Sun Feb 26 01:21:23 UTC 2017


> On Feb 24, 2017, at 4:05 PM, Andreas Buff <autobuff at gmx.de> wrote:
> 
> Hi,
> 
> I seem to have an issue using HTTPS/TLS when cloning a repo.
> 
> Using "hg clone https://domain.com/path/to/repo <https://domain.com/path/to/repo>",
> 
> The error I get is:
> 
> "abort: error: EOF occurred in violation of protocol (_ssl.c:590)"
> 
> --debug --traceback output can be found on the bottom.
>  This does work though: hg clone http://selenic.com/hg <http://selenic.com/hg> mercurial-repo
> I am using Mercurial 4.0.1 on OSX 10.11.6 (installed with package installer <https://www.mercurial-scm.org/mac/binaries/Mercurial-4.0.1-macosx10.11.pkg>).
> 
> hg --version:
> Mercurial Distributed SCM (version 4.0.1)
> 
> python -V:
> Python 2.7.13
> 
> My .hgrc:
> 
> [hostsecurity]
> disabletls10warning = true
> [hostfingerprints]
> domain.com = my:sh:aa:a0:29:04:02:ed:aa:23:40:66:b2:eb:e1:0a:03:c0:ec:66
> 
> This Python script runs fine:

Did you run this python script with /usr/bin/python? That’s what hg is running with if you used our package installer, and I suspect you’ve got inadequate TLS support.

(This is a known deficiency of our packaged builds, and is something we’re hoping to address soon.)

>  import socket, ssl
> context = ssl.create_default_context()
> context.verify_mode = ssl.CERT_REQUIRED
> context.load_default_certs()
> conn = context.wrap_socket(socket.socket(socket.AF_INET), server_hostname='www.mozilla.org <http://www.mozilla.org/>')
> conn.connect(('www.mozilla.org <http://www.mozilla.org/>', 443))
> 
> This Python script:
> 
> import ssl
> context = ssl.create_default_context()
> context.load_default_certs()
> context.cert_store_stats()
> 
> returns: {'x509': 0, 'x509_ca': 0, 'crl': 0}
> 
> which does look fishy to me.
> 
> I searched a lot and get out of ideas.
> 
> Thankful for any hints.
> 
> Best,
> Andreas
> Output of "hg clone --debug --traceback https://dom <https://dom/>ain.com/path/to/repo": sending capabilities command Traceback (most recent call last):   File "/Library/Python/2.7/site-packages/mercurial/dispatch.py", line 205, in _runcatchfunc     return _dispatch(req)   File "/Library/Python/2.7/site-packages/mercurial/dispatch.py", line 901, in _dispatch     cmdpats, cmdoptions)   File "/Library/Python/2.7/site-packages/mercurial/dispatch.py", line 650, in runcommand     ret = _runcommand(ui, options, cmd, d)   File "/Library/Python/2.7/site-packages/mercurial/dispatch.py", line 909, in _runcommand     return cmdfunc()   File "/Library/Python/2.7/site-packages/mercurial/dispatch.py", line 898, in <lambda>     d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)   File "/Library/Python/2.7/site-packages/mercurial/util.py", line 1037, in check     return func(*args, **kwargs)   File "/Library/Python/2.7/site-packages/mercurial/commands.py", line 1559, in clone     shareopts=opts.get('shareopts'))   File "/Library/Python/2.7/site-packages/mercurial/hg.py", line 447, in clone     srcpeer = peer(ui, peeropts, source)   File "/Library/Python/2.7/site-packages/mercurial/hg.py", line 175, in peer     return _peerorrepo(rui, path, create).peer()   File "/Library/Python/2.7/site-packages/mercurial/hg.py", line 152, in _peerorrepo     obj = _peerlookup(path).instance(ui, path, create)   File "/Library/Python/2.7/site-packages/mercurial/httppeer.py", line 298, in instance     inst._fetchcaps()   File "/Library/Python/2.7/site-packages/mercurial/httppeer.py", line 78, in _fetchcaps     self.caps = set(self._call('capabilities').split())   File "/Library/Python/2.7/site-packages/mercurial/httppeer.py", line 207, in _call     fp = self._callstream(cmd, **args)   File "/Library/Python/2.7/site-packages/mercurial/httppeer.py", line 154, in _callstream     resp = self.urlopener.open(req)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open     response = self._open(req, data)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open     '_open', req)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain     result = func(*args)   File "/Library/Python/2.7/site-packages/mercurial/url.py", line 342, in https_open     return self.do_open(self._makeconnection, req)   File "/Library/Python/2.7/site-packages/mercurial/keepalive.py", line 264, in do_open     raise urlerr.urlerror(err) URLError: <urlopen error EOF occurred in violation of protocol (_ssl.c:590)>
> _______________________________________________
> Mercurial mailing list
> Mercurial at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial/attachments/20170225/89b390c0/attachment-0002.html>


More information about the Mercurial mailing list