connect() returns EADDRINUSE during massive host->host conn rate

Adrian Chadd adrian at freebsd.org
Fri Nov 30 02:54:28 PST 2007


On 30/11/2007, Jan Srzednicki <w at wrzask.pl> wrote:

> Most of the relevant sockets (that is, between the two host mentioned)
> are in the ESTABLISHED state (200-400 of those). Only 20-40 are in
> TIME_WAIT state (these tend to be from a more ephemeric POP3 service). Most
> of the EADDRINUSE happen for the IMAP4 service.

I'd probably start by patching the places in the tcp code
(src/sys/netinet/tcp_usrreq.c)  which returns this error
(Its returned in other places but that seems to me to be the most
likely from your description.)

Insert some code to print out information about the current socket and
the "oinp" value returned from in_pcbconnect_setup() (if this is the
place where the error occured.)

Finding out more about the socket thats been created and what its
clashing with might help. I'd do it myself but I'm not sure how to
duplicate the issue.


Adrian

-- 
Adrian Chadd - adrian at freebsd.org


More information about the freebsd-net mailing list