L'événement FD_READ n'est pas signalé sur le socket connecté si les données arrivent aussitôt après un Accept() sur le réseau SAN

Ancien nº de publication de cet article : F289232
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Sur une connexion de réseau SAN (System Area Network), lorsqu'un programme utilisant EventSelect appelle sur un socket à l'écoute et que les données arrivent aussitôt après un accept, le programme risque d'attendre indéfiniment la notification de l'événement FD_READ sur le socket connecté.

En outre, une autre situation de course peut se présenter dans les circonstances suivantes :
  • Le retard d'écoute disponible est passé à zéro.
  • Le côté serveur appelle un accept, ce qui a pour effet d'incrémenter le retard disponible d'une unité.
  • Une connexion est tentée avant que l'incrémentation ait lieu.
Ce conflit amène le serveur à refuser la connexion.
Cause
Ce comportement se présente car le pilote Afd.sys de Windows 2000 contient des paramètres incorrects.
Résolution
Pour résoudre ce problème, procurez-vous le dernier service pack Windows 2000. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances Microsoft :
260910 Obtention du dernier Service Pack de Windows 2000
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section "Liste des produits concernés par cet article".

Ce problème a été corrigé dans Windows 2000 Service Pack 2.
Plus d'informations
De nombreux programmes utilisent des appels WSAEventSelect et WSAEnumNetworkEvents/WaitForSingleObject pour être notifiés des événements de réseau qui se produisent sur un socket. N'importe quel programme attendant un événement FD_READ sur un socket connecté peut rencontrer ce problème, qui oblige la thread du programme à attendre indéfiniment la notification de FD_READ.
Propriétés

ID d'article : 289232 - Dernière mise à jour : 02/04/2014 06:09:04 - Révision : 3.0

  • Microsoft Windows 2000 Professionel
  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
  • kbnosurvey kbarchive kbbug kbfix kbnetwork kbwin2000x KB289232
Commentaires