Tâche #11468
Scénario #11288: Résoudre les problèmes d'instabilité constatés sur Zéphir 2.3.16
corriger les problèmes d'accès concurrents apparaissant dans les logs du backend (objets creole 2.3)
Remaining (hours):
0.0
Description
des messages de ce type peuvent apparaître dans les logs (création en parallèle de 2 objets EoleDict ?) :
Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011Traceback (most recent call last): Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/threading.py", line 504, in __bootstrap Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 self.__bootstrap_inner() Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 self.run() Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/threading.py", line 484, in run Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 self.__target(*self.__args, **self.__kwargs) Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011--- <exception caught here> --- Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/dist-packages/twisted/python/threadpool.py", line 210, in _worker Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 result = context.call(ctx, function, *args, **kwargs) Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/dist-packages/twisted/python/context.py", line 59, in callWithContext Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 return self.currentContext().callWithContext(ctx, func, *args, **kw) Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/dist-packages/twisted/python/context.py", line 37, in callWithContext Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 return func(*args,**kw) Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/dist-packages/zephir/backend/uucp_rpc.py", line 1250, in _maj_site Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 serv.check_maj_status(self.parent.maj_checker) Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/dist-packages/zephir/backend/lib_backend.py", line 1096, in check_maj_status Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 dico = self.parsedico() Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/dist-packages/zephir/backend/lib_backend.py", line 578, in parsedico Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 dico = self.get_config(mode, encode) Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/dist-packages/zephir/backend/lib_backend.py", line 476, in get_config Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 dico = self.check_dict(mode, encode) Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/dist-packages/zephir/backend/lib_backend.py", line 536, in check_dict Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 dico = ZephirDict(dicos, self.confdir, mode, self.version, force_instanciate, eole_version=self.module_version) Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/dist-packages/zephir/utils/creolewrap.py", line 139, in __init__ Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 self.dico = EDict(logfile='/dev/null') Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/pymodules/python2.6/creole/cfgparser.py", line 75, in __init__ Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 self.log.set_logfile(logfile) Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/pymodules/python2.6/creole/log.py", line 20, in set_logfile Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 self.remove_handler() Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/pymodules/python2.6/creole/log.py", line 38, in remove_handler Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 self.handler.close() Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 File "/usr/lib/python2.6/logging/__init__.py", line 828, in close Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011 self.stream.close() Apr 6 06:26:30 pne-eole-01 zephir_backend: [-] #011exceptions.IOError: close() called during concurrent operation on the same file object. Apr 6 06:26:30 pne-eole-01 zephir_backend: [HTTPChannel,304,10.33.0.5] Traceback (most recent call last): Apr 6 06:26:30 pne-eole-01 zephir_backend: [HTTPChannel,304,10.33.0.5] File "/usr/lib/python2.6/logging/__init__.py", line 789, in emit Apr 6 06:26:30 pne-eole-01 zephir_backend: [HTTPChannel,304,10.33.0.5] stream.write(fs % msg) Apr 6 06:26:30 pne-eole-01 zephir_backend: [HTTPChannel,304,10.33.0.5] ValueError: I/O operation on closed file
Le problème semble se situer sur la mise en place du fichier de log des objets creole (2.0 -> 2.3). Sur Zéphir, ces logs sont redirigés sur /dev/null.
Associated revisions
Création des objets creole 2.3 en mode 'NOLOG'
ref #11468 @30m
Ajout d'une dépendance sur la version de creole 2.3 gérant l'option 'NOLOG'
ref #11468 @5m
History
#1 Updated by Bruno Boiget about 8 years ago
- Status changed from Nouveau to En cours
#2 Updated by Scrum Master about 8 years ago
- Status changed from En cours to Résolu
#3 Updated by Bruno Boiget about 8 years ago
- % Done changed from 0 to 100
#4 Updated by Joël Cuissinat about 8 years ago
- Status changed from Résolu to Fermé
- Remaining (hours) changed from 1.0 to 0.0