Bonsoir Daniel, L'installation automatique d'un paquet sous wapt se fait via l'utilisateur "System" Peux-tu essayer de lancer ta console python avec cet utilisateur voir si tu as la même erreur ? (Il faut utiliser psexec des pstools et lancer avec un psexec -s .....) Bonne soirée
Le 11 mai 2020 20:26, Daniel Berteaud daniel@firewall-services.com a écrit : Bonsoir.
Sur certains de mes paquets, j'utilise le module yaml dans le setyp.py pour manipuler des documents YAML. Rien de très particulier, j'ajoute juste :
import yaml
ou bien
from yaml import safe_load
Puis je peux par exemple charger un doc yaml depuis un fichier texte, comme ça :
yaml.safe_load(open(makepath(programfiles32,'wapt','private','variables.txt'),'r').read())
(je simplifie en ne mettant que les parties pertinentes pour mon pb).
C'est utilisé sans problème sur plus de 100 machines, mais là, j'ai un soucis avec un Windows Server 2019. Première fois que je déploie du WAPT sur cette version de Windows. Sur cette version, le simple chargement du module YAML fait planter le paquet avec :
Exception at 74841527: EOverflow: Floating point overflow.
J'ai passé pas mal de temps à débuguer, et je peux reproduire le problème avec un setup.py aussi simple que :
from yaml import safe_load
def install(): print('Nothing to do')
Donc un paquet vide. Mais l'installation avec wapt-get reproduit l'erreur "Floating point exception" (avant d'atteindre la fonction install() ). Pourtant, si je lance une console python interactive (C:\Program Files x86)\wapt\waptpython.exe), et que j'importe ce même module yaml, pas de stack trace.
Est-ce qu'un expert python par ici saurait m'aiguiller pour savoir où chercher, et comment résoudre ce problème ? Mon Google-Fu ne semble pas trouver d'info particulière pour ce problème
++ --
[Logo%20FWS]https://www.firewall-services.com
Daniel Berteaud FIREWALL-SERVICES SAS, La sécurité des réseaux Société de Services en Logiciels Libres Tél : +33.5 56 64 15 32 Matrix: @dani:fws.fr https://www.firewall-services.com
----- Le 11 Mai 20, à 20:54, MORILLO Jordi j.morillo@educationetformation.fr a écrit :
Bonsoir Daniel, L'installation automatique d'un paquet sous wapt se fait via l'utilisateur "System" Peux-tu essayer de lancer ta console python avec cet utilisateur voir si tu as la même erreur ? (Il faut utiliser psexec des pstools et lancer avec un psexec -s .....)
Démarré avec psexec, depuis un (cmd Administrateur)
C:>PsExec.exe -s -i "C:\Program Files (x86)\wapt\waptpython.exe"
Dans la console qui s'ouvre, je peux importer le module yaml sans traceback. Ça semble bien tourner avec les droits systèmes (un getpass.getuser() renvoie le nom de la machine) Il doit donc y avoir une différence avec l'exécution via le service, mais je ne vois pas encore laquelle ...
Cordialement, Daniel
----- Le 11 Mai 20, à 21:51, Daniel Berteaud daniel@firewall-services.com a écrit :
----- Le 11 Mai 20, à 20:54, MORILLO Jordi j.morillo@educationetformation.fr a écrit :
Bonsoir Daniel, L'installation automatique d'un paquet sous wapt se fait via l'utilisateur "System" Peux-tu essayer de lancer ta console python avec cet utilisateur voir si tu as la même erreur ? (Il faut utiliser psexec des pstools et lancer avec un psexec -s .....)
Je me rend compte que je n'ai pas été très précis : le problème ne semble pas se poser via le service WAPT, mais si j'exécute wapt-get install depuis un cmd Administrateur. (dans mes procédures, je dois installer "manuellement" un paquet via wapt-get install avant de pouvoir déployer les autres, via le service. Donc j'avoue que je n'avais pas essayé via le service)
Le problème n'est donc pas général, et du coup, je peux le contourner maintenant que je sais ça.
Ça reste quand même une curiosité ...
Cordialement