Anomalie #2082
Instanciation en mode conteneur échoue sur une machine trop rapide
Description
Sur une machine trop rapide, l'instanciation d'un serveur en mode conteneur échoue.
Visiblement Cheetah n'aime pas qu'on templatise 2 fichiers avec le même nom dans un temps très court. Il utilise alors le contenu du 1er template pour créer le second fichier. C'est particulièrement gênant dans le cadre du mode conteneur, en effet, il y a des boucles utilisant un fichier temporaire '/tmp/container.tmpl'. Si je met un sleep(1) dans la boucle, ca fonctionne. Si je retire le sleep(1) tous les fichiers sont identiques.
Je propose donc d'utilise mktemp plutôt que de nommer directement un fichier.
--- cfgparser.py.old 2011-09-20 17:23:54.000000000 +0200 +++ cfgparser.py 2011-09-20 17:28:20.000000000 +0200 @@ -12,6 +12,7 @@ from glob import glob from commands import getstatusoutput from shutil import move +from tempfile import mktemp try: import json except: @@ -632,7 +633,7 @@ except: import traceback traceback.print_exc() - inputfile='/tmp/container.tmpl' + inputfile=mktemp() files = glob(join(inputdir, '*')) fd = open(inputfile, 'wa') for filename in files: @@ -644,7 +645,7 @@ t.process(self) for container in containers: - inputfile='/tmp/container.tmpl' + inputfile=mktemp() files = glob(join(self._make_root_path(container), 'interfaces.d', '*')) fd = open(inputfile, 'wa') for filename in files: @@ -961,7 +962,7 @@ fh.close() for container in cname: - inputfile='/tmp/container.tmpl' + inputfile=mktemp() inputdir = join(self._make_root_path(container), 'hosts.d') outputfile = join(self._make_root_path(container), config.VIRTBASE, 'etc/hosts') files = glob(join(inputdir, '*'))
Révisions associées
see #2082 Do not change user's authentication method when a wrong authentication occured
cfgparser.py : application du patch avec utilisation de mktemp (fixes #2082)
Historique
#1 Mis à jour par Joël Cuissinat il y a plus de 12 ans
- Version cible mis à Mises à jour 2.3 - 02 RC
#2 Mis à jour par Joël Cuissinat il y a plus de 12 ans
- Statut changé de Nouveau à Résolu
- % réalisé changé de 0 à 100
Appliqué par commit 19656a8318912336be8536933f80cbcb1bb68b87.
#3 Mis à jour par Fabrice Barconnière il y a plus de 12 ans
- Statut changé de Résolu à Fermé
- Distribution mis à EOLE 2.3