Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Nov 2007 10:22:08 -0800
From:      Julian Elischer <julian@elischer.org>
To:        Jan Srzednicki <w@wrzask.pl>
Cc:        freebsd-net@freebsd.org, freebsd-stable@freebsd.org
Subject:   Re: connect() returns EADDRINUSE during massive host->host conn rate
Message-ID:  <474DB1D0.3010100@elischer.org>
In-Reply-To: <20071127135320.GJ2045@oak.pl>
References:  <20071127135320.GJ2045@oak.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
Jan Srzednicki wrote:
> Hello,
> 
> I have a pair of hosts. One of them performs a massive amount of
> TCP connections to the other one, all to the same port. This setup
> mostly works fine, but from time to time (that varies, from once a
> minute to one a half an hour), the connect(2) syscall fails with 
> EADDRINUSE. The connection rate tops to 50 connection

so, what does netstat -aAn show?

> initiations/second.
> 
> The socket is non-blocking. It does standard job of creating the socket,
> setting up the relevant fields, setting SO_REUSEADDR and SO_KEEPALIVE,
> setting O_NONBLOCK on the descriptor. No bind(2) is performed. The
> connection is initiated from inside a jail (not sure if that implies a
> internal bind(2) to the jail's address). There are no connections from
> the other host to the first one.
> 
> I've tried tuning the net.inet.ip.portrange variables: I've increased
> the available portrange to over 45000 ports (quite a lot, should be more
> than enough for just anything) and I've toggled
> net.inet.ip.portrange.randomized off, but that didn't change anything.
> 
> The workaround on the application side - retrying on EADDRINUSE - works
> pretty well, but hey, from what I know from the Stevens book, that
> shouldn't be happening, though Google said all BSD had a bad habit of
> throwing out EADDRINUSE from time to time.
> 
> This all happens on a 6.2-RELEASE system. The symptoms are easily
> reproducable in my environment.
> 
> Is there any known fix for that? If there ain't, can it be fixed? :)
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?474DB1D0.3010100>