Bug #58985
ne pas avoir le cache de bloc dans le pickle
0%
Description
(analyse Manu dans #58960#note-7).
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Fichier 0001-fields-do-not-store-cached-block-in-pickle-58985.patch 0001-fields-do-not-store-cached-block-in-pickle-58985.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
(patch qui serait à compléter d'un test mais pour ça il faudrait trouver le moment où ce formdef avec bloc et cache est apparu).
Mis à jour par Thomas Noël il y a plus de 2 ans
Frédéric Péters a écrit :
(patch qui serait à compléter d'un test mais pour ça il faudrait trouver le moment où ce formdef avec bloc et cache est apparu).
Le test ne pourrait pas être la vérification qu'un FormDef.get(42) contenant un bloc ne contient pas la modification des fields de celui-ci ? (ie ce que fait Manu dans #58960, note 7) ?
Mis à jour par Frédéric Péters il y a plus de 2 ans
Le test ne pourrait pas être la vérification qu'un FormDef.get(42) contenant un bloc ne contient pas la modification des fields de celui-ci ? (ie ce que fait Manu dans #58960, note 7) ?
J'aimerais le moment, qui ne soit pas artificiellement créé, qui amène cette situation :
le formdef un accès formdef.fields[0].block qui le met en cache formdef.store()
Mon idée va déjà être l'exécution des tests avec ce patch et un pdb dans la condition, pour voir si ça y arrive, mais je crains que non et qu'on soit sur quelque chose de plus rare.
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Fichier 0001-fields-do-not-store-cached-block-in-pickle-58985.patch 0001-fields-do-not-store-cached-block-in-pickle-58985.patch ajouté
pour voir si ça y arrive
ça arrive sur plein de moments, copy.deepcopy pour les variables de contexte (là je pense jamais de soucis) mais aussi pour les afterjob; je n'ai pas cheché à en isoler un précis mais je dirais que ça peut arriver d'y avoir un formdef.store().
Bref, patch avec un test artificiel.
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Thomas Noël il y a plus de 2 ans
pylint n'aime pas la ligne 769 "formdef.fields0.block" dans les tests. Certainement facile à contourner avec un commentaire ou une fausse affectation.
En tout cas pour moi c'est tout bon.
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
(ajusté pour pylint)
commit 014dfb01fe70ece35348aad2c51a4de00bd1e6e8 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Thu Nov 25 12:17:31 2021 +0100 fields: do not store cached block in pickle (#58985)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
fields: do not store cached block in pickle (#58985)