Development #37390
test_concurrency.test_attribute_value_uniqueness instable
0%
Description
un changement dans le gabarit d'enregistrement qui n'a pas été pris en compte dans les tests
Fichiers
Demandes liées
Révisions associées
models: lock user model when changing multiple attribute values (#37390)
Historique
Mis à jour par Paul Marillonnet il y a plus de 4 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Paul Marillonnet
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Lié à Bug #37370: phrase bizarre sur la page d'enregistrement ajouté
Mis à jour par Paul Marillonnet il y a plus de 4 ans
Aussi un bogue introduit par 8879c1d83bfaae95f276d84c32da353b3d08cba5 (#32025), je regarde.
Mis à jour par Paul Marillonnet il y a plus de 4 ans
Paul Marillonnet a écrit :
Aussi un bogue introduit par 8879c1d83bfaae95f276d84c32da353b3d08cba5 (#32025), je regarde.
Heisenbug :)
Je comprend pas ce qui casse l'atomicité pourtant explicitement requise sur ce bout de code de la méthode set_value
de la classe d'attribut de profil.
J'ai souvenir qu'il y avait des soucis avec sqlite mais pas avec postgres.
Et ça me saoulerait de git-revert ça parce que dans des conditions d'utilisation réalistes (i.e. pas 100 threads qui viennent taper sur les valeurs d'un attribut multiple pour un même usager donné), le code de 8879c1d83bfaae95f276d84c32da353b3d08cba5 fait son boulot.
Quelqu'un a déjà vu ça ? On jurerait que même sous des contraintes d'atomicité l'ORM django se permet quelques écarts.
Oui PEBCAK me direz-vous mais là je suis à court d'idées.
Mis à jour par Frédéric Péters il y a plus de 4 ans
J'ai déjà poussé ta partie concernant le texte affiché à l'enregistrement vers master.
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Sujet changé de build authentic cassé à test_concurrency.test_attribute_value_uniqueness instable
Et je réduis du coup ce ticket.
map_threads(f, range(concurrency)) map_threads(f, range(concurrency)) > assert AttributeValue.objects.filter(attribute=multiple_at).count() == 1 E AssertionError: assert 2 == 1 E + where 2 = <bound method AttributeValueQuerySet.count of <AttributeValueQuerySet [<AttributeValue: AttributeValue object>, <AttributeValue: AttributeValue object>]>>() E + where <bound method AttributeValueQuerySet.count of <AttributeValueQuerySet [<AttributeValue: AttributeValue object>, <AttributeValue: AttributeValue object>]>> = <AttributeValueQuerySet [<AttributeValue: AttributeValue object>, <AttributeValue: AttributeValue object>]>.count E + where <AttributeValueQuerySet [<AttributeValue: AttributeValue object>, <AttributeValue: AttributeValue object>]> = <bound method ManagerFromAttributeValueQuerySet.filter of <django.db.models.manager.ManagerFromAttributeValueQuerySet object at 0x7f4c0956ab10>>(attribute=<Attribute 'multiple'>) E + where <bound method ManagerFromAttributeValueQuerySet.filter of <django.db.models.manager.ManagerFromAttributeValueQuerySet object at 0x7f4c0956ab10>> = <django.db.models.manager.ManagerFromAttributeValueQuerySet object at 0x7f4c0956ab10>.filter E + where <django.db.models.manager.ManagerFromAttributeValueQuerySet object at 0x7f4c0956ab10> = AttributeValue.objects tests/test_concurrency.py:60: AssertionError
Mis à jour par Frédéric Péters il y a plus de 4 ans
Très instable, je serais pour le désactiver, ou le marquer xfail, pour ne pas perturber les builds normaux.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Assigné à changé de Paul Marillonnet à Benjamin Dauvergne
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Fichier 0001-models-lock-user-model-when-changing-multiple-attrib.patch 0001-models-lock-user-model-when-changing-multiple-attrib.patch ajouté
- Tracker changé de Bug à Development
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à Résolu (à déployer)
commit 3d3df4e85830e2f3f1ef5624c1f7477d1fff81cb Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Tue Nov 12 11:05:14 2019 +0100 models: lock user model when changing multiple attribute values (#37390)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
adapt registration test to template changes (#37390)