[Twisted-Python] socket error 22

glyph at divmod.com glyph at divmod.com
Tue May 6 18:00:17 EDT 2008


On 02:43 pm, wthie at thiengineering.ch wrote:
>Hi all

Hi Werner!  Thanks for reporting this issue.  It's always nice to hear 
about problems under high load.  I hope we can get it fixed.
>Running on twisted 2.5 OpenBSD I see the following traceback in the 
>logs every twenty minutes with up to 200 athena/LivePages connected:

>         return address.IPv4Address('TCP', *(self.socket.getsockname() + 
>('INET',)))
>       File "<string>", line 1, in getsockname
>
>     socket.error: (22, 'Invalid argument')

>Changing reactors does not help, the error is very unspecific. Before I 
>start changing the source sprinkling it with log statements is there 
>anybody out there who has a cure or knows an explanation.

We don't have an OpenBSD buildbot, so I don't know if this is a 
platform-specific issue.  Can you reproduce it on Linux or FreeBSD, for 
which there are officially-supported buildbots on 
http://buildbot.twistedmatrix.com/supported?branch=trunk ?

One possible issue here is that the POSIX standard says that getsockname 
may fail with EINVAL if the socket has been shut down:

http://www.opengroup.org/onlinepubs/009695399/functions/getsockname.html

but Linux says that it may fail with EINVAL only if the namelen 
parameter is invalid:

    http://linux.die.net/man/2/getsockname

However, it seems wrong that openbsd would shut down the socket without 
giving some other notification (the usual stuff that Twisted uses to get 
notified of a socket shutting down; presence in the write-selected set, 
an error in send() or recv()); i.e. you should see connectionLost called 
before this error can occur.

If you really want to run Twisted on OpenBSD though, the first step 
should be getting a buildbot going and submitting any patches for failed 
tests.  Otherwise any suggestions from core developers are just going to 
be guesses...




More information about the Twisted-Python mailing list