On Tru64 Unix, closing a TCP socket sometimes fails with the EINVAL error but the socket is actually closed. Compaq confirmed this is a bug. This bug is fixed on Tru64 UNIX V5.1A and later. Here are the tracking numbers associated with the tcp socket close() defect: Request ID: BCGM711RJ Field ID: CFS77854 PTR: 117-1-14950 QAR: 81633 and 81431 The following is from the Tru64 Unix Networking Group. > 1. A clear description of the nature of the problem and the > solution. Problem description: A problem exists such that the close() system call, when called to close a TCP socket, may return an error status with errno set to EINVAL. Contrary to the return status, the system call does successfully close the socket. Solution: The solution is a change to TCP processing of the close() request, such that a successful close() completes with a success status. Workaround: Because the socket was successfully closed, an application may safely ignore the EINVAL error. Tru64 UNIX versions affected: V5.1 and earlier, although the problem is most likely to occur on V5.0, V5.0A, and V5.1. Kernel modules affected: tcp_usrreq.o inet.mod > 2. Under what conditions and with what iPlanet products the > problem will occur. The problem occurs when the remote end of a TCP connection is closed (or shutdown for writing), followed by the local socket being shutdown() for writing, followed by the local socket being closed within approximately 1 second of the shutdown(). > 3. Why the fix to the NSPR library is the best solution. It frees those applications that use it from being dependent on a patch to the base operating system.
*** Bug 86764 has been marked as a duplicate of this bug. ***
Severity: normal → critical
Status: NEW → ASSIGNED
Priority: -- → P1
Target Milestone: --- → 4.1.2
I checked in the fix on the trunk and NSPRPUB_RELEASE_4_1_BRANCH of NSPR.
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.