Projet

Général

Profil

Bug #59767

IntegrityError: update or delete on table "auth_group" violates foreign key constraint "auth_user_groups_group_id...

Ajouté par Sentry Io il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
16 décembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

https://sentry.entrouvert.org/entrouvert/publik/issues/54143/

IntegrityError: update or delete on table "auth_group" violates foreign key constraint "auth_user_groups_group_id_97559544_fk_auth_group_id" on table "auth_user_groups" 
DETAIL:  Key (id)=(23682) is still referenced from table "auth_user_groups".

  File "django/db/backends/base/base.py", line 240, in _commit
    return self.connection.commit()

IntegrityError: update or delete on table "auth_group" violates foreign key constraint "auth_user_groups_group_id_97559544_fk_auth_group_id" on table "auth_user_groups" 
DETAIL:  Key (id)=(23682) is still referenced from table "auth_user_groups".

(5 additional frame(s) were not displayed)
...
  File "django/db/transaction.py", line 240, in __exit__
    connection.commit()
  File "django/db/backends/base/base.py", line 262, in commit
    self._commit()
  File "django/db/backends/base/base.py", line 240, in _commit
    return self.connection.commit()
  File "django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "django/db/backends/base/base.py", line 240, in _commit
    return self.connection.commit()

provisionning failed

Demandes liées

Lié à Hobo - Development #59794: provisionning: ne pas supprimer les rôles deux fois lors d'un provisionning fullFermé16 décembre 2021

Actions

Historique

#1

Mis à jour par Lauréline Guérin il y a plus de 2 ans

  • Projet changé de Suivi des traces à Hobo
#2

Mis à jour par Paul Marillonnet il y a plus de 2 ans

Étrange on dirait le comportement sur une ForeignKey(on_delete=models.DO_NOTHING). On n’a ça nulle part entre groupes et usagers django. Est-ce une modif dans django qui serait venue casser notre code ?

#3

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

Il y a un souci de cascade sur la suppression d'un hobo.agent.common.models.Role (qui hérite de django.contrib.auth.models.Group) la suppression du User.groups.through ne se fait pas visiblement, c'est assez étrange. Je dirai dans un premier temps de faire un test tout con, on crée un common.Role on l'affecte à un utilisateur et on le supprime pour voir ce que ça donne.

Mais en plus il y a bug zarbi dans le code :

            qs.delete()
            for role in qs:
                role.delete()

il y a une double suppression (mais j'aurai plutôt vu le souci sur la deuxième suppression).

#4

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

  • Lié à Development #59794: provisionning: ne pas supprimer les rôles deux fois lors d'un provisionning full ajouté

Formats disponibles : Atom PDF