Projet

Général

Profil

Bug #19516

Curieuse erreur de provisionning authentic

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

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Révision 858521f6 (diff)
Ajouté par Frédéric Péters il y a presque 4 ans

provisionning: get all roles (#19516)

Historique

#1

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).

#2

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.

#3

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.

#4

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

  • Projet changé de Grand Lyon Guichet - Toodego à Hobo
#5

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

  • Privée changé de Oui à Non
#7

Mis à jour par Frédéric Péters il y a presque 4 ans

(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.

#8

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

  • Statut changé de Solution proposée à Solution validée
#9

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

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

Formats disponibles : Atom PDF