[ECOS] FreeBSD Netstack EPIPE error

Anthony Tonizzo atonizzo@gmail.com
Tue Oct 10 23:01:00 GMT 2006


> I have seen similar behavior with our web server, but so far we have
> ignored the issue as we are using HTTP and could get away with
> occasional connection loss.

I am not sure if this is really apropos, but in the case of HTTP, make
sure that you are not exhausting the total available socket descriptors.

Jonathan from eCosCentric pointed out to me that when you close() a
descriptor the resources are not deallocated immediately by the netstack.
If in the meantime you continue serving pages, you quickly exhaust
the pool of available sockets as you use them to serve requests.

In this case you would see a freezup for a minute or more, and then
the page you originally requested would be served. After some more
pages are served, the server would again freeze (on select(), if I
remember correctly.)

The solution is to increase CYGNUM_FILEIO_NFILE and
CYGNUM_FILEIO_NFD. Currently they are set to 16, and you might
try some value, say 64, that should clearly tell you if you are in the
right direction. Increasing CYGNUM_FILEIO_NFILE increases
CYGNUM_NET_MAXSOCKETS, which is _really_ what you want.


Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list