Mercurial > hg-stable
changeset 24152:97a548aeb749 stable
dispatch: work around UnicodeDecodeError caused by SSLError of Python 2.7.9
SSLError of Python 2.7.9 may keep error message in unicode. It will be
wrapped by URLError(reason) at KeepAliveHandler.do_open, so inst.reason can
be a unicode.
https://hg.python.org/cpython/file/v2.7.9/Modules/_ssl.c#l329
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 26 Feb 2015 23:30:33 +0900 |
parents | 38824c53c2f1 |
children | f7401f816cc9 |
files | mercurial/dispatch.py |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dispatch.py Thu Feb 05 14:45:49 2015 +0900 +++ b/mercurial/dispatch.py Thu Feb 26 23:30:33 2015 +0900 @@ -230,6 +230,9 @@ except (AttributeError, IndexError): # it might be anything, for example a string reason = inst.reason + if isinstance(reason, unicode): + # SSLError of Python 2.7.9 contains a unicode + reason = reason.encode(encoding.encoding, 'replace') ui.warn(_("abort: error: %s\n") % reason) elif (util.safehasattr(inst, "args") and inst.args and inst.args[0] == errno.EPIPE):