Projet

Général

Profil

Bug #58985

ne pas avoir le cache de bloc dans le pickle

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
25 novembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

(analyse Manu dans #58960#note-7).


Fichiers

Révisions associées

Révision 014dfb01 (diff)
Ajouté par Frédéric Péters il y a plus de 2 ans

fields: do not store cached block in pickle (#58985)

Historique

#1

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

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

#3

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

#4

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.

#5

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

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.

#6

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

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

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.

#8

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

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

Formats disponibles : Atom PDF