Operating System - HP-UX
1825780 Members
2152 Online
109687 Solutions
New Discussion

Why 11.0 accept() can cause ENOBUFS

 
SOLVED
Go to solution
David Connolly
Regular Advisor

Why 11.0 accept() can cause ENOBUFS

Hi all,

My development group (based on WebLogic) is having a sprodic issue whereby if a client sends a TCP RST to the server, the JVM on the server side throws a SocketException. This is not desirable as a bad client connection will result in a SocketException on the server side. Throwing a SocketException for this non-fatal error could result in the Server side application performing expensive exception handling that is required only for fatal errors.

BEA say:
HP-UX/HP JVM users:
This is an issue with the HP JVM running on HP-UX 11 or later releases only. In HP-UX release 11, HP introduced the ENOBUFS return code from accept(). See the following excerpt from HP support email:
Why 11.0 accept() can cause ENOBUFS?
======================================
The description has not been changed at 11.0. However, the implementation of accept() system call was changed at 11.0(Transport stack has changed drastically due to STREAMS based TCP/IP). And it can return -1 with errno=ENOBUFS based on the condition of "the queued socket connect request is aborted". Here, this means the transport stack received RST just after SYN was received. If RST comes before accept() is done, this situation can happen.

On 10.X, if this happens, the connection was just silently dropped.

Can anyone help? Is there an OS/JVM patch to help this?

I'm running 11.11 with June 2002 Golk Pack on a 5430
1 REPLY 1
Dietmar Konermann
Honored Contributor
Solution

Re: Why 11.0 accept() can cause ENOBUFS

Hi, David!

There is no OS patch for this, since the transport stack works as designed.

However the problem is reported as defect JAGae01390 against the JVM.

It is fixed beginning with revision 1.3.1.05, which is downloadable form http://www.hp.com/go/java.

Regards...
Dietmar.
"Logic is the beginning of wisdom; not the end." -- Spock (Star Trek VI: The Undiscovered Country)