3 votes

Client Windows Sensu - erreurs occasionnelles "Access is denied" lors de l'exécution de fichiers batch

Nous avons le client Windows Sensu qui fonctionne sur plusieurs systèmes 2008 R2. L'un de nos contrôles appelle un fichier batch pour recueillir des informations et faire un rapport. Nous recevons sporadiquement le message "Unknown : Unexpected error : Access is denied (5)" pour ces contrôles - aucune fréquence standard, aucune corrélation... le contrôle suivant s'exécute correctement sans problème.

J'ai retracé l'appel à travers la pile et les Code Ruby Sensu ) génère le processus enfant de 'cmd.exe /c "/path/to/batch.bat parameters"' sans problème. Je peux recréer le problème en supprimant tout accès NTFS au fichier batch lui-même. Si vous exécutez cmd /c batch.bat avec ces permissions supprimées, vous obtiendrez la même erreur "Access is denied (5)".

Ok, super, il a des problèmes pour accéder au fichier. Pourquoi ? J'ai lancé les traces du moniteur de processus et je ne trouve absolument rien d'anormal dans le processus : ruby se charge, cmd.exe est appelé, cmd.exe lit le fichier sans erreur visible, puis il renvoie le contrôle comme Accès refusé. Qu'est-ce que... ?

Je n'ai plus d'idées. Quelques informations complémentaires au cas où elles seraient utiles : les binaires ruby sont exécutés en 32 bits ; le client Sensu est la dernière version du site Sensuapp ; le système exécute System Center Endpoint Protection. Qu'est-ce qui me manque ?

-1voto

Dirk Stoop Points 2223

Il s'est avéré qu'il s'agissait d'un bug dans la bibliothèque ChildProcess Ruby et la façon dont elle gérait l'assignation du processus Windows à un objet Job (race condition). Je partagerai la correction avec l'auteur une fois que j'aurai nettoyé le code.

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