Bug #25776
crash sur email récapitulatif si le formdef a été supprimé entre temps
0%
Description
Exception: type = '<type 'exceptions.KeyError'>', value = '' Stack trace (most recent call first): File "/usr/lib/python2.7/dist-packages/wcs/qommon/storage.py", line 375, in get_filename 373 if ignore_errors: 374 return None > 375 raise KeyError() 376 except ImportError as e: 377 if ignore_errors: locals: cls = <class 'wcs.formdef.FormDef'> filename = '/var/lib/wcs/calvados.test.entrouvert.org/formdefs/51' ignore_errors = False ignore_migration = False kwargs = {} File "/usr/lib/python2.7/dist-packages/wcs/qommon/storage.py", line 311, in get 309 return cls.get_filename(filename, ignore_errors=ignore_errors, 310 ignore_migration=ignore_migration, > 311 **kwargs) 312 313 @classmethod locals: cls = <class 'wcs.formdef.FormDef'> filename = '/var/lib/wcs/calvados.test.entrouvert.org/formdefs/51' id = '51' ignore_errors = False ignore_migration = False kwargs = {} File "/usr/lib/python2.7/dist-packages/wcs/wf/aggregation_email.py", line 117, in send_aggregation_emails 115 formdef, formdata, workflow = cache[formdef_id] 116 else: > 117 formdef = FormDef.get(formdef_id) 118 formdata = formdef.data_class() 119 workflow = formdef.workflow
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a plus de 5 ans
- Fichier 0001-workflows-don-t-send-aggregation-emails-about-delete.patch 0001-workflows-don-t-send-aggregation-emails-about-delete.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Anonyme il y a plus de 5 ans
Notamment pour que je puisse appliquer le patch et le tester, je me dis que ça serait bien un petit test de régression.
À la relecture, je me demande si le FormDef a été supprimé, est-ce qu'il est possible qu'il soit encore dans le cache et que if formdef_id in cache
à la ligne 115 soit positif ? Parce qu'alors, j'ai l'impression que l'email sera envoyé quand même.
Mis à jour par Thomas Noël il y a plus de 5 ans
Elias Showk a écrit :
Notamment pour que je puisse appliquer le patch et le tester, je me dis que ça serait bien un petit test de régression.
J'ai eu la flemme parce que y'a 0 tests en place sur cette action... qu'on n'utilise jamais, en fait. (ça doit être remplacé par un système de notification)
À la relecture, je me demande si le FormDef a été supprimé, est-ce qu'il est possible qu'il soit encore dans le cache et que
if formdef_id in cache
à la ligne 115 soit positif ? Parce qu'alors, j'ai l'impression que l'email sera envoyé quand même.
Oui ça enverra un mail mais ça plantera pas :-) En fait c'est plutôt improbable parce que le cache est construit juste le temps du lancement de cette action, et parce qu'elle est lancée à 6h du matin, heure à laquelle personne ne vient supprimer un formdef. De toute façon, s'il faut gérer ça, ça veut juste dire ne plus gérer de cache, donc, voilà, non.
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Solution proposée à Solution validée
ok en remplaçant le sujet trop long par "workflows: ignore deleted formdef/formdata in aggregation emails (#25776)".
Mis à jour par Thomas Noël il y a plus de 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit ec8efb64977936f5743edb21b53c9c4fe41a1110 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Thu Aug 23 09:19:06 2018 +0200 workflows: ignore deleted formdef/formdata in aggregation emails (#25776)
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
workflows: ignore deleted formdef/formdata in aggregation emails (#25776)