Bug #34528
crash actions globales sur déclenchement selon un statut obsolète
0%
Description
[2019-07-04 04:51:24] exception caught Exception: type = '<type 'exceptions.KeyError'>', value = '' Stack trace (most recent call first): File "/usr/lib/python2.7/dist-packages/wcs/workflows.py", line 392, in get_status 390 if status.id == id: 391 return status > 392 raise KeyError() 393 394 def get_backoffice_fields(self): locals: id = 'finished' self = <Workflow 'MM services aux communes simple' id:25> status = <wcs.workflows.WorkflowStatus object at 0x7fe3853cb490> File "/usr/lib/python2.7/dist-packages/wcs/workflows.py", line 1168, in apply 1166 elif (trigger.anchor == '1st-arrival' and 1167 trigger.anchor_status_first and > 1168 workflow.get_status(trigger.anchor_status_first) in endpoint_status): 1169 run_on_finalized = True 1170 elif (trigger.anchor == 'latest-arrival' and
Une action globale est présente avec un déclencheur selon présence dans un statut (ici trigger.anchor_status_first), mais ce statut n'existe plus dans le workflow.
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Thomas Noël
Mis à jour par Thomas Noël il y a presque 5 ans
- Fichier 0001-workflows-detect-obsolete-status-in-global-actions-t.patch 0001-workflows-detect-obsolete-status-in-global-actions-t.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Solution via amélioration de la détection des triggers mal configurés (parce que le statut qu'ils référencent n'existe plus).
Mis à jour par Frédéric Péters il y a presque 5 ans
Je ne pense pas que ça change quoique ce soit parce que via l'UI les situations ne doivent pas être possibles mais quand même, les and self.anchor_status_first
et and self.anchor_status_latest
, ils font que la situation où anchor
serait posé mais pas self.anchor_status_first
(resp. self.anchor_status_latest
), n'est pas gérée.
Mis à jour par Thomas Noël il y a presque 5 ans
Frédéric Péters a écrit :
Je ne pense pas que ça change quoique ce soit parce que via l'UI les situations ne doivent pas être possibles mais quand même, les
and self.anchor_status_first
etand self.anchor_status_latest
, ils font que la situation oùanchor
serait posé mais pasself.anchor_status_first
(resp.self.anchor_status_latest
), n'est pas gérée.
Dans ma lecture de must_trigger c'est une situation possible, quand ces ancres sont None c'est le statut du formulaire qui compte :
anchor_status = self.anchor_status_first or formdata.status
Mis à jour par Frédéric Péters il y a presque 5 ans
Ok j'ai pas de cerveau pour ça pour le moment, je réfléchirai plus tard.
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Bon, je ne vois pas trop quand des actions globales basées sur n'importe quel statut seraient utiles, mais j'ai du penser que oui à un moment, ok.
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit d157723e20cc5caf7de3bb201f3f04ee829793a1 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Fri Jul 5 00:11:06 2019 +0200 workflows: detect obsolete status in global actions timeout triggers (#34528)
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
workflows: detect obsolete status in global actions timeout triggers (#34528)