Not sure why, but I got phabsend hang on work network pretty frequently.
The traceback indicates it hangs at _sslobj.do_handshake():
File "mercurial/sslutil.py", line 404, in wrapsocket sslsocket = sslcontext.wrap_socket(sock, server_hostname=serverhostname) File "/usr/lib/python2.7/ssl.py", line 363, in wrap_socket _context=self) File "/usr/lib/python2.7/ssl.py", line 611, in __init__ self.do_handshake() File "/usr/lib/python2.7/ssl.py", line 840, in do_handshake self._sslobj.do_handshake()
I had tried adding timeout in various places but they seem not effective.
It seems easier to just allow shelling out to curl with retry and timeout
flags.
This could also be helpful for people with an older Python installed without
modern security (SNI).
Maybe it's better to insert -- for extra safety.