Bug #14591
KeyError sur session inexistante
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
13 janvier 2017
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Description
Sur le tenant Nancy, de temps en temps, cette trace :
Exception: type = '<type 'exceptions.KeyError'>', value = '' Stack trace (most recent call first): File "/usr/lib/python2.7/dist-packages/wcs/qommon/storage.py", line 370, in get_filename 368 if ignore_errors: 369 return None > 370 raise KeyError() 371 except ImportError as e: 372 if ignore_errors: locals: ignore_errors = False ignore_migration = False cls = <class 'sessions.BasicSession'> filename = '/var/lib/wcs-au-quotidien/demarches.nancy.fr/sessions/78f80da9d507952f' File "/usr/lib/python2.7/dist-packages/wcs/qommon/storage.py", line 309, in get 307 filename = os.path.join(cls.get_objects_dir(), fix_key(id)) 308 return cls.get_filename(filename, ignore_errors=ignore_errors, > 309 ignore_migration=ignore_migration) 310 311 @classmethod locals: ignore_errors = False ignore_migration = False id = '78f80da9d507952f' cls = <class 'sessions.BasicSession'> filename = '/var/lib/wcs-au-quotidien/demarches.nancy.fr/sessions/78f80da9d507952f' File "/usr/lib/python2.7/dist-packages/wcs/qommon/storage.py", line 250, in <genexpr> 248 keys = cls.keys() 249 objects = (cls.get(k, ignore_errors=ignore_errors, > 250 ignore_migration=ignore_migration) for k in keys) 251 if ignore_errors: 252 objects = (x for x in objects if x is not None) locals: .0 = <listiterator object at 0x7fe0204d9a10> ignore_errors = False k = '78f80da9d507952f' (...)
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Thomas Noël il y a plus de 7 ans
Petite enquête.
Cette session, elle date du 6 janvier :
/var/lib/wcs-au-quotidien/demarches.nancy.fr/wcs.log.17:
2017-01-06 07:52:38,858 INFO 62.244.71.130 78f80da9d507952f /login/ unlogged - login
et rien d'autre... (peut-être un login avorté, j'ai pas encore vérifié). Session oubliée, non utilisée.
Et c'est dans :
245 @classmethod 246 def select(cls, clause=None, order_by=None, ignore_errors=False, 247 ignore_migration=False, limit=None, offset=None): 248 keys = cls.keys() 249 objects = (cls.get(k, ignore_errors=ignore_errors, 250 ignore_migration=ignore_migration) for k in keys)
que ça foire. Pas normal.. Sauf que, à Nancy, il y a 5526 sessions
dans /var/lib/wcs-au-quotidien/demarches.nancy.fr/sessions : c'est 10 fois
plus que le site qui en a le plus (eservices.mymeaux.fr avec 529 sessions)
Voilà donc une piste.
Mis à jour par Frédéric Péters il y a plus de 7 ans
- Fichier 0001-sessions-always-ignore-errors-when-dealing-with-visi.patch 0001-sessions-always-ignore-errors-when-dealing-with-visi.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a plus de 7 ans
- Lié à Development #14593: cadence de nettoyage des sessions ajouté
Mis à jour par Frédéric Péters il y a plus de 7 ans
- Statut changé de Nouveau à Résolu (à déployer)
commit fd1b1a581a3c2ecba06f322550084178768c4bee Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri Jan 13 10:31:48 2017 +0100 sessions: always ignore errors when dealing with visited objects (#14591)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
sessions: always ignore errors when dealing with visited objects (#14591)