[issue20611] socket.create_connection() doesn't handle EINTR properly

Florent Xicluna report at bugs.python.org
Wed Feb 12 16:13:52 CET 2014


New submission from Florent Xicluna:

I had this sporadic traceback in a project:

  File "test.py", line 62, in <module>
    result = do_lqs(client, str(dnvn))
  File "test.py", line 25, in do_lqs
    qualif_service_id = client.create('ti.qualif.service', {})
  File "/srv/openerp/.buildout/eggs/ERPpeek-1.4.5-py2.6.egg/erppeek.py", line 894, in wrapper
    return self.execute(obj, method, *params, **kwargs)
  File "/srv/openerp/.buildout/eggs/ERPpeek-1.4.5-py2.6.egg/erppeek.py", line 636, in execute
    res = self._execute(obj, method, *params)
  File "/srv/openerp/.buildout/eggs/ERPpeek-1.4.5-py2.6.egg/erppeek.py", line 361, in <lambda>
    wrapper = lambda s, *args: s._dispatch(name, args)
  File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.6/xmlrpclib.py", line 1235, in request
    self.send_content(h, request_body)
  File "/usr/lib/python2.6/xmlrpclib.py", line 1349, in send_content
    connection.endheaders()
  File "/usr/lib/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib/python2.6/httplib.py", line 780, in _send_output
    self.send(msg)
  File "/usr/lib/python2.6/httplib.py", line 739, in send
    self.connect()
  File "/usr/lib/python2.6/httplib.py", line 1112, in connect
    sock = socket.create_connection((self.host, self.port), self.timeout)
  File "/usr/lib/python2.6/socket.py", line 561, in create_connection
    raise error, msg
socket.error: [Errno 4] Interrupted system call



It seems that the EINTR should be caught by the standard library in all cases: http://bugs.python.org/issue1628205

But it's not the case for the "socket.create_connection" method (verified in 3.3 and 2.7 source code).

----------
components: IO, Library (Lib)
messages: 211095
nosy: flox
priority: normal
severity: normal
status: open
title: socket.create_connection() doesn't handle EINTR properly
type: behavior
versions: Python 2.7, Python 3.3, Python 3.4

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue20611>
_______________________________________


More information about the Python-bugs-list mailing list