Projet

Général

Profil

Bug #14591

KeyError sur session inexistante

Ajouté par Thomas Noël il y a plus de 7 ans. Mis à jour il y a plus de 5 ans.

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

Lié à w.c.s. - Development #14593: cadence de nettoyage des sessionsFermé13 janvier 2017

Actions

Révisions associées

Révision fd1b1a58 (diff)
Ajouté par Frédéric Péters il y a plus de 7 ans

sessions: always ignore errors when dealing with visited objects (#14591)

Historique

#1

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.

#3

Mis à jour par Thomas Noël il y a plus de 7 ans

Ack

#4

Mis à jour par Thomas Noël il y a plus de 7 ans

#5

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)
#6

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

Formats disponibles : Atom PDF