reassign 633093 python thanks On 08/07/11 12:14, Jonathan Nieder wrote: > Package: mercurial > Version: 1.8.3-1 > > Hi, > > Whenever I try to clone an HTTPS url, I get this error: > > | $ hg clone https://bitbucket.org/anders/xnu > | abort: error: _ssl.c:340: error:00000000:lib(0):func(0):reason(0) > > What does that mean? Known problem?
The attached python script reproduces this. Basically, a call to ssl.wrap_socket() with an empty ca_certs file (not a nonexistent file, a file that exists but is empty) causes python to raise that error. There's nothing that mercurial can do about it because the SSLError raised doesn't provide any information (errno: 0). I think this should be fixed in the ssl library in python. You can get an empty /etc/ssl/certs/ca-certificates.crt by doing "dpkg-reconfigure ca-certificates" and desactivating all certificates, so it's a plausible scenario in Debian. Cheers, Javi (Vicho) > > Jonathan > $ dpkg-query -W libssl1.0.0 > libssl1.0.0 1.0.0d-3 > > -- System Information: > Debian Release: wheezy/sid > APT prefers stable > APT policy: (500, 'stable') > Architecture: amd64 (x86_64) > > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) > Shell: /bin/sh linked to /bin/dash > > Versions of packages mercurial depends on: > ii libc6 2.13-10 Embedded GNU C Library: Shared > lib > ii mercurial-common 1.8.3-1 scalable distributed version > contr > ii python 2.7.2-2 interactive high-level > object-orie > ii python-support 1.0.14 automated rebuilding support for > P > ii ucf 3.0025+nmu2 Update Configuration File: > preserv > > mercurial recommends no packages. > > Versions of packages mercurial suggests: > ii emacs 23.3+1-1 The GNU Emacs editor > (metapackage) > pn kdiff3 | <none> (no description available) > pn qct <none> (no description available) > ii tk8.5 [wi 8.5.10-1 Tk toolkit for Tcl and X11, v8.5 > - > ii tk8.6 [wi 8.6.0~b1-3 Tk toolkit for Tcl and X11, v8.6 > - > ii vim 2:7.3.154+hg~74503f6ee649-2+b1 Vi IMproved - enhanced vi editor > ii vim-gtk [ 2:7.3.154+hg~74503f6ee649-2+b1 Vi IMproved - enhanced vi editor > - > > -- no debconf information > > >
#!/usr/bin/python import os, socket, ssl, tempfile f = tempfile.NamedTemporaryFile(delete=False) empty_cacert_file = f.name f.close() sock = socket.create_connection(("bitbucket.org", 443)) sock = ssl.wrap_socket(sock, ca_certs=empty_cacert_file, cert_reqs=ssl.CERT_REQUIRED) os.unlink(empty_cacert_file) print("Success")
signature.asc
Description: OpenPGP digital signature