FD_READ Event Is Not Signaled on Connected Socket If Data Arrives Right After an Accept() on SAN

Article translations Article translations
Article ID: 289232 - View products that this article applies to.
This article was previously published under Q289232
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

SYMPTOMS

On a system area network (SAN) connection, when a program that uses EventSelect calls on a listening socket and then data arrives right after an accept, the program may wait indefinitely for notification of the FD_READ event on the connected socket.

In addition, another race condition may result under the following conditions:
  • The available listening backlog has become zero.
  • The server side calls an accept, which increments the available backlog by one.
  • A connection is attempted before the increment takes place.
This race condition causes the server to refuse the connection.

CAUSE

This behavior occurs because the Windows 2000 Afd.sys driver contains incorrect settings.

RESOLUTION

To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
260910 How to Obtain the Latest Windows 2000 Service Pack

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

This problem was first corrected in Windows 2000 Service Pack 2.

MORE INFORMATION

Many programs use WSAEventSelect and WSAEnumNetworkEvents/WaitForSingleObject calls to be notified of the network events that happen on a socket. Any program that waits for an FD_READ event on a connected socket can run into this problem, which causes that program thread to wait indefinitely for FD_READ notification.

Properties

Article ID: 289232 - Last Review: October 23, 2013 - Revision: 3.2
APPLIES TO
  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Service Pack 1
Keywords: 
kbnosurvey kbarchive kbbug kbfix kbnetwork KB289232

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com