Operating System - HP-UX
1752793 Members
5911 Online
108789 Solutions
New Discussion юеВ

TCP/IP, O/S call accept() : No buffer space available

 
SOLVED
Go to solution
Amit Kureel
Advisor

TCP/IP, O/S call accept() : No buffer space available

We have a client-server architecture in which clients from remote-sites connect to the central host (V-Class server, with HP-UX 11.00 64-bit). We have a communication-server written at the host end that accepts connection requests from remote-sites.

I am getting an error returned from the O/S call accept(). This system call accept() returns an error : " No buffer space available" [ errno=233, ENOBUFS ]

Can anybody help me
4 REPLIES 4
Andy Monks
Honored Contributor

Re: TCP/IP, O/S call accept() : No buffer space available

your either running out of kernel memory (possible if it's a 32bit application), or you have a kernel memory leak.

Or, you could change the application to retry if it gets an enobuf error as it can be transient
Bill Hassell
Honored Contributor
Solution

Re: TCP/IP, O/S call accept() : No buffer space available

The error message ENOBUFS is somewhat misleading as it does not always mean there is a memory limitation. The system call, accept(), currently may return an errno "ENOBUFS" to its server application when it picks up a connect request arriving from its remote. This is because the connect request is aborted (ie., received a RST) by the remote before accept() is completed.

A better explanation of ENOBUFS might be:

No buffer space is available. The accept() cannot complete. The queued socket connect request is aborted.

In all cases for ENOBUFS as a return code, the connection should be retried. In the past, this condition returned EINVAL which was even more confusing and became ENOBUFS early in the 11.0 releases.

There has been a suggestion to return ECONNNABORTED for a connection abort by RST before accept returns, but as the HP-UX socket transport code is based on BSD rather than SRV.4 or POSIX.1g standards.

Also, be sure you have the latest LAN transport patches which may fix your problem.

Cumulative ARPA Transport patch(PHNE_21767)

HP-PB FDDI (J2157B) product cumulative patch(PHNE_19633)

LAN product cumulative patch(PHNE_21217)


Bill Hassell, sysadmin
Brian M. Fisher
Honored Contributor

Re: TCP/IP, O/S call accept() : No buffer space available

This same issue was covered recently, check out the following link:
http://atwnt370.external.hp.com/cm/QuestionAnswer/1,1150,0x6c637e990647d4118fee0090279cd0f9,00.html

Brian
<*(((>< er
Perception IS Reality
CHRIS ANORUO
Honored Contributor

Re: TCP/IP, O/S call accept() : No buffer space available

Hi Amit,

Reset your kernel parameters as follows:
bufpages=0
nbuf=0
With these 2 values set to zero, the biffer caching will be dynamic within the range of dbc_min_pct=5 and dbc_max_pct=25.
(These values are 5% and 25% of your physical memory)
Enable pseudo memory by setting swap_mem_on=1

When We Seek To Discover The Best In Others, We Somehow Bring Out The Best In Ourselves.