This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: FreeBSD Netstack EPIPE error
- From: "Anthony Tonizzo" <atonizzo at gmail dot com>
- To: ecos-discuss at sourceware dot org
- Date: Tue, 10 Oct 2006 16:01:43 -0700
- Subject: Re: [ECOS] FreeBSD Netstack EPIPE error
Hans:
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.
Cheers
Tony
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss