Projet

Général

Profil

Bug #19389

crash sur aggregation d'email si le rôle n'existe pas/plus

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
12 octobre 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

[2017-10-12 06:00:30] exception caught
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 'wcs.roles.Role'>
     filename = '/var/lib/wcs/demarches-lenord.test.entrouvert.org/roles/11'

  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 = '11'
     cls = <class 'wcs.roles.Role'>
     filename = '/var/lib/wcs/demarches-lenord.test.entrouvert.org/roles/11'

  File "/usr/lib/python2.7/dist-packages/wcs/wf/aggregation_email.py", line 95, in send_aggregation_emails
    93     cache = {}
    94     for aggregate_id in AggregationEmail.keys():
>   95         role = Role.get(aggregate_id)
    96         if not role.emails:
    97             continue

Fichiers

Révisions associées

Révision a9099837 (diff)
Ajouté par Thomas Noël il y a plus de 6 ans

workflow: remove aggregation email if can not send it (#19389)

Historique

#1

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

Au passage je remarque que ça n'envoie que à role.emails (et pas role.get_emails) et donc à mon avis ça marche juste pas dans nos utilisations actuelles → #19390

#2

Mis à jour par Frédéric Péters il y a plus de 6 ans

Plutôt que le continue supprimer le mail de récap. AggregationEmail.remove(aggregate_id), genre.

#3

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

  • Patch proposed changé de Oui à Non
#4

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

Voici une version plus dure : on annule le mail d'aggregation si le rôle n'existe pas ou s'il n'y a pas d'adresse mail cible (ie j'estime que si le mail ne part pas le matin, on ne tente pas de l'envoyer le lendemain, c'est trop tard).

(nb pour le mail cible, cf #19390)

#5

Mis à jour par Frédéric Péters il y a plus de 6 ans

Ok pour moi.

#6

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

commit a909983795364fc81dae597c92794c5be7cf96dc
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Thu Oct 12 08:59:20 2017 +0200

    workflow: remove aggregation email if can not send it (#19389)

#7

Mis à jour par Frédéric Péters il y a plus de 6 ans

  • Statut changé de En cours à Fermé

Poussé et sur les prods déjà.

Formats disponibles : Atom PDF