Bug #19516
Curieuse erreur de provisionning authentic
0%
Description
error in provisionning thread Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/hobo/agent/authentic2/provisionning.py", line 252, in do_provision self.notify_users(ous, saved.get(self.User, [])) File "/usr/lib/python2.7/dist-packages/hobo/agent/authentic2/provisionning.py", line 123, in notify_users user_roles.setdefault(u_id, set()).add(roles[r_id]) KeyError: 75
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
La seule raison que je vois ce serait qu'un utilisateur ait gagné un rôle entre ces lignes:
113 all_roles = (self.Role.objects.filter(members__in=users).parents() 114 .prefetch_related('attributes').distinct()) 115 roles = dict((r.id, r) for r in all_roles)
et celle-ci:
121 for u_id, r_id in Through.objects.filter(role__members=users).values_list('user_id', 122 'role_id'):
où d'ailleurs je ne sais pas pourquoi je n'ai pas mis plus simplement .filter(user__in=users)
.
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
Une solution serait certainement d'ajouter un with atomic():
autour de tout ça.
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
Mais bon comme le niveau d'isolation par défaut de PG est read commited et pas repeatable read, possible que ça ne corrige rien, le mieux ce serait de partir d'un listing complet des rôles et ne pas se restreindre à ceux dont un utilisateur est membre à ce moment.
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Projet changé de Grand Lyon Guichet - Toodego à Hobo
Mis à jour par Frédéric Péters il y a presque 4 ans
- Fichier 0001-provisionning-get-all-roles-19516.patch 0001-provisionning-get-all-roles-19516.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
(de temps en temps quelques occurences).
le mieux ce serait de partir d'un listing complet des rôles et ne pas se restreindre à ceux dont un utilisateur est membre à ce moment.
Voilà juste ça.
Mis à jour par Benjamin Dauvergne il y a presque 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a presque 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
Discuté et évalué comme pouvant être poussé dès maintenant,
commit 858521f6c413ae25a051c1996401d234f4851fc3 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri Jun 19 20:27:54 2020 +0200 provisionning: get all roles (#19516)
Mis à jour par Frédéric Péters il y a presque 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
provisionning: get all roles (#19516)