[MacPorts] #18376: Remedy socket 35 errors on all Python builds

MacPorts noreply at macports.org
Wed Feb 4 14:09:40 PST 2009


#18376: Remedy socket 35 errors on all Python builds
-----------------------------+----------------------------------------------
 Reporter:  ben@…            |       Owner:  macports-tickets@…                   
     Type:  defect           |      Status:  new                                  
 Priority:  High             |   Milestone:  Port Bugs                            
Component:  ports            |     Version:  1.7.0                                
 Keywords:  python, socket   |        Port:                                       
-----------------------------+----------------------------------------------
 OSX's poll is broken. Apple knows this, and removes the HAVE_POLL option
 as can be seen in the first line of the pyconfig patch here:

 http://www.opensource.apple.com/darwinsource/10.5.6/python-30.1.2/fix/pyconfig.ed

 This patch should be applied to all Python builds that MacPorts supports,
 as it fixes a nasty bug that is being mis-reported all over the place on
 OSX. Here's one such example of a traceback caused by it:

 {{{
 File "../uploader.py", line 94, in <module>
    resp, data = http.request(post_uri, 'POST', body=content,
 headers=headers)
  File "build/bdist.macosx-10.5-i386/egg/httplib2/__init__.py", line 1050,
 in request
  File "build/bdist.macosx-10.5-i386/egg/httplib2/__init__.py", line 854,
 in _request
  File "build/bdist.macosx-10.5-i386/egg/httplib2/__init__.py", line 823,
 in _conn_request
  File
 "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/httplib.py",
 line 874, in request
    self._send_request(method, url, body, headers)
  File
 "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/httplib.py",
 line 914, in _send_request
    self.send(body)
  File
 "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/httplib.py",
 line 719, in send
    self.sock.sendall(str)
  File "<string>", line 1, in sendall
 socket.error: [Errno 35] Resource temporarily unavailable
 }}}

 And another report caused by the same problem:
 http://www.cherrypy.org/ticket/598

 Applying the same regexp that Apple does, fixes the problem in my tests.

 Credit for finding this bug and its solution should be attributed to Phil
 Jenvey, I merely bugged him until he found the problem for me. :)

-- 
Ticket URL: <http://trac.macports.org/ticket/18376>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list