1832023 Members
3239 Online
110034 Solutions
New Discussion

ENOBUFS issue

 
SUMIT BASU MALLICK
Occasional Contributor

ENOBUFS issue

Dear All,

I am facing a problem in V-class with HPUX 11.0

The customer is having the oracle and any application issues socket() and accept() system calls for connectivity.

Now with the high no. of users it is giving ENOBUFS error and the link is getting failure.

The RAM is > 3 GB and that is not a choke.

Can anybody extend your help........
4 REPLIES 4
Bill Hassell
Honored Contributor

Re: ENOBUFS issue

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.


Bill Hassell, sysadmin
Brian M. Fisher
Honored Contributor

Re: ENOBUFS issue

Under heavy load, a LAN driver may return an
ENOBUFS error to DLPI for each outbound packet. DLPI passes these error messages upstream. If the application does not read these messages, they will remain in the Streams head and consume memory resources. This eventually consumes all available memory and the system appears to hang.

Try adding the following patches:

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

s700_800 11.00 cumulative ARPA Transport patch(PHNE_19899)

s700_800 11.00 LAN product cumulative patch(PHNE_20657)

Brian
<*(((>< er
Perception IS Reality
CHRIS_ANORUO
Honored Contributor

Re: ENOBUFS issue

The error is as a result of low buffer cache.
Set these kernel parameters as follows:
allocate_fs_swapmap=0
bufpages=0
dbc_max_pct=25
dbc_min_pct=5
max_async_ports=npty
maxusers=max. number of users+100
npty=max. # of users+50
swapmem_on=1
Also, set your shmmax, maxdsiz and maxtsiz to be above 1Gb.

I hope this will help

Cheers!
When We Seek To Discover The Best In Others, We Somehow Bring Out The Best In Ourselves.
CHRIS_ANORUO
Honored Contributor

Re: ENOBUFS issue

As Addendum,

set nbuf=0 and bufpages=0
This activates the dynamic function of buffer cache using the values of dbc_max_pct and dbc_min_pct as range.
When We Seek To Discover The Best In Others, We Somehow Bring Out The Best In Ourselves.