Bug #22325
récup charte vs threads
0%
Description
Avec un peu de malchance la mise à jour asynchrone du thème se fait dans un thread alors que le processus est déjà recyclé pour une autre requête et bim mauvais settings.
(il y a un truc qu'on doit mal faire au niveau multitenant/settings.py)
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a environ 6 ans
- Fichier 0001-misc-don-t-use-settings-in-async-thread-theme-update.patch 0001-misc-don-t-use-settings-in-async-thread-theme-update.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Rapidement utilisé en local.
Mis à jour par Thomas Noël il y a environ 6 ans
(relu... mais je cède la place, je n'arrive pas à voir pourquoi get_template est forcément appelé avant)
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Hmm TenantSettingsWrapper utilise connection.get_tenant() (connection est thread local), TenantAwareThread normalement sauvegarde le tenant au moment de sa création et le restaure dans sa méthode run() donc normalement on devrait taper dans les bons settings.
Si on arrivait à reproduire facilement je mettrai bien des logs un peu partout (notamment log du tenant avant lancement du thread et dans la fonction exécutée dans le thread), ce qui m'étonne c'est quand même qu'on a jamais vu ça sur la prod en plusieurs années et pourtant c'est pas les thèmes différents qui manquent.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Frédéric Péters a écrit :
Rapidement utilisé en local.
Mais donc localement tu reproduis le bug ?
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Benjamin Dauvergne a écrit :
Frédéric Péters a écrit :
Rapidement utilisé en local.
Mais donc localement tu reproduis le bug ?
Ok vu le commentaire sur l'autre ticket.
Mis à jour par Frédéric Péters il y a environ 6 ans
normalement
Oui.
Mais donc localement tu reproduis le bug ?
cf aussi réponse sur admin@, c'est juste les erreurs 403 et les logs de combo après avoir activé uwsgi en thread only côté wcs. (mais dans cette configuration recette, la reproduction, si elle n'est pas automatique, est au moins très fréquente).
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Ok donc le souci il est uniquement coté w.c.s. et ma réponse sur admin@ indique d'où vient le souci, on peut fermer ce ticket je pense.
Mis à jour par Frédéric Péters il y a environ 6 ans
Ce ticket permet à w.c.s. de ne pas rencontrer ce bug (vu l'accès à settings réalisé avant de partir du thread).
Je ne suis pas sûr de capter ta proposition une fois que ce ticket serait rejeté : c'est que w.c.s. puisse charger hobo.multitenant ? (je peux entendre ça comme idéal c'est juste 100× plus de boulot).
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Désolé je n'avais pas compris que le patch étant dans hobo il s'appliquait à corriger un bug uniquement dans w.c.s. (malgré mon mail d'ailleurs), donc ack, c'est la bonne chose à faire en attendant d'avoir des settings Django tenant aware coté w.c.s. (ou pas d'ailleurs).
Mis à jour par Frédéric Péters il y a environ 6 ans
- Statut changé de En cours à Résolu (à déployer)
commit b7b7a84879b12f3b6e1258b1abb4eb2bdf34d3b0 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Mar 6 17:08:49 2018 +0100 misc: don't use settings in async/thread theme update (#22325)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: don't use settings in async/thread theme update (#22325)