[Python-3000] status of buildbots

Adam Hupp adam at hupp.org
Wed Oct 31 14:30:55 CET 2007


On 10/31/07, Neal Norwitz <nnorwitz at gmail.com> wrote:
> We've made a lot of progress with the tests.  Several buildbots are
> green.  http://python.org/dev/buildbot/3.0/
>
> There are some tests that are unstable, at least:
>    test_asynchat test_urllib2net test_xmlrpc
> http://python.org/dev/buildbot/3.0/g4%20osx.4%203.0/builds/170/step-test/0
> http://python.org/dev/buildbot/3.0/x86%20FreeBSD%203.0/builds/126/step-test/0

test_xmlrpc has code to ignore these but the error message has changed
slightly so it's no longer in effect.

The reason for the errors is that the test is setting a timeout on the
socket object which puts it in to non-blocking mode.  That's
incompatible with SocketServer which uses socket.makefile for IO.  I
don't think the timeout is necessary as long as one other fix is made.
 I've asked the author of the test for confirmation.

On a related note, I think socket.makefile should throw an error if
called on a non-blocking socket.  The docs are pretty unambiguous that
this is wrong:

"file objects returned by the makefile() method must only be used when
the socket is in blocking mode; in timeout or non-blocking mode file
operations that cannot be completed immediately will fail."

Throwing an error would prevent things like this CherryPy issue:

 http://www.cherrypy.org/ticket/598

This doesn't help if the socket is put into non-blocking mode after
makefile is called but it's better than nothing.

Alternatively, if the a timeout is set but non-blocking is *not*
explicitly enabled the socket implementation could handle the retry
loop itself.

-- 
Adam Hupp | http://hupp.org/adam/


More information about the Python-3000 mailing list