5 votes

Le fichier de verrouillage réussit mais la lecture du fichier échoue

Je sais que cela ressemble à une question de programmation mais ce n'est pas le cas. Soyez patients avec moi s'il vous plaît:

J'ai un client qui rencontre un problème étrange que je ne peux pas expliquer: un programme utilise un fichier sur un lecteur SMB partagé (serveur Windows 2008R2) ouvert en mode partagé.

Avant d'effectuer une mise à jour à l'intérieur du fichier, le programme verrouillera des parties spécifiques en utilisant LockFile, lira les données, écrira les modifications requises à ces parties et les déverrouillera ensuite.

Cela est fait pour s'assurer que plusieurs instances du même programme ne peuvent pas écraser les modifications de l'autre.

Dans le cas de mon client, ce programme (qui fonctionnait parfaitement depuis des années dans tous les autres endroits) parvient à verrouiller le fichier mais l'appel subséquent à ReadFile sur la même poignée échoue et GetlastError renvoie l'erreur 64 Le nom de réseau spécifié n'est plus disponible

Ainsi, ma question:

Y a-t-il un paramètre dans le client SMB ou le serveur Windows qui pourrait causer quelque chose comme ça ?

Cela me semble être un verrouillage optimiste mais Windows ne fait pas de verrous optimistes par défaut (il fait des verrous opportunistes).

Ma première suspicion est que ce problème est causé par le logiciel antivirus (Kaspersky) mais l'administrateur du site assure que tous les antivirus ont une exclusion pour ce chemin réseau, aussi bien sur le client que sur le serveur de fichiers.

Le système d'exploitation client est un mélange de Windows XP, 7, 2003 et 2008R2 (via services de terminal). Il semble se produire uniquement en période de charge importante (le matin lorsque tout le monde arrive ou le soir lorsque tout le monde se déconnecte).

1voto

Stephane Points 6344

Eh bien, la réponse était beaucoup plus simple que je ne le pensais : un pilote de périphérique défectueux pour la carte réseau du serveur semble être la cause de tous ces problèmes.

0voto

krowe Points 287

Ceci est vraiment un problème de programmation à mon avis, mais il peut être ramené à la façon dont il 'fonctionnait' avant en rétrogradant votre système d'exploitation. Windows 7 a introduit un nouveau mécanisme de verrouillage dans CIFS qui est presque certainement la cause de votre problème. Cela signifie que vous devez soit mettre à jour le programme pour qu'il fonctionne avec le nouveau schéma de verrouillage (problème de programmation) soit vous devez rétrograder ou trouver une solution de compatibilité (problèmes administratifs).

http://en.wikipedia.org/wiki/Server_Message_Block

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X